我正在尝试创建仅电子邮件身份验证。我不想登录,我想要一个情况下,我将只有注册,一旦电子邮件输入,一个承载令牌创建。
我有注册功能和登录功能,当我启动了密码,但我已经删除了密码,但我试图移动“创建令牌”注册。令牌未定义会产生错误。
注册函数

public function signup(Request $request)
    {
        $request->validate([
           'email' => 'required|string|email|unique:users'
        ]);
        $user = new User([
            'email' => $request->email
        ]);
        $user->save();
        return response()->json([
            'message' => 'Successfully created user!'
        ], 201);
    }

登录功能
public function login(Request $request)
    {
        $request->validate([
            'email' => 'required|string|email'

        ]);
        $credentials = request(['email', '=']);
        if(!Auth::attempt($credentials))
            return response()->json([
                'message' => 'Unauthorized'
            ], 401);
        $user = $request->user();
        $tokenResult = $user->createToken('Personal Access Token');
        $token = $tokenResult->token;
        if ($request->remember_me)
            $token->expires_at = Carbon::now()->addWeeks(1);
        $token->save();
        return response()->json([
            'access_token' => $tokenResult->accessToken,
            'token_type' => 'Bearer',
            'expires_at' => Carbon::parse(
                $tokenResult->token->expires_at
            )->toDateTimeString()
        ]);
    }

最佳答案

很简单,你已经完成了这里需要完成的大部分工作。您不需要登录函数,而是需要复制函数的令牌部分,如下所示

 public function signup(Request $request)
    {
        $request->validate([
           'email' => 'required|string|email|unique:users'
        ]);
        $user = new User([

            'email' => $request->email
        ]);
         $user->save();
        Auth::login($user);
        $tokenResult = $user->createToken('Personal Access Token');
        $token = $tokenResult->token;
        if ($request->remember_me)
            $token->expires_at = Carbon::now()->addWeeks(1);
        $token->save();
        return response()->json([
            'message' => 'Successfully created user!',
            'access_token' => $tokenResult->accessToken,
            'token_type' => 'Bearer',
            'expires_at' => Carbon::parse(
                $tokenResult->token->expires_at
            )->toDateTimeString()
            ], 201);


    }

关于mysql - 是否可以从Laravel中的现有电子邮件密码结构创建仅电子邮件身份验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54905052/

10-11 15:21
查看更多