2

我正在使用 JWT 为我的应用程序创建一个 API。它适用于不同的桌子而不是users桌子。如何使用另一个表验证登录用户的身份students并创建 jwt 令牌。

对于User table正在工作的用户认证功能,其如下:

$credentials = $request->only(['email', 'password']);
    try {
        $token = Auth::guard()->attempt($credentials);
        if(!$token) {
            return response()->json([
                'message'       => "Email and password do not match",
                'status_code'   => 204,
            ]);
        }
        $user = Auth::user();
        if($user->status == "Inactive") {
            return response()->json([
                'message'       => "User ID is disabled",
                'status_code'   => 403,
            ]);
        }
        $user->last_login = Carbon::now();
        $user->save();
        $user = Auth::user();
        $user->UserDeviceData()->firstOrCreate([
            'device_id'     => $request->device_id,
            'device_type'   => $request->device_type ? $request->device_type : "ios",
        ]);

        return (new UserTransformer)->transform($user,[
            'request_type'  => 'login',
            'token'         =>  $token
        ]);

    } catch (JWTException $e) {
        return response()->json([
            'message'       => "Internal server error",
            'status_code'   => 500,
        ]);
    } 

这是 OTP 验证功能,其代码如下所示:

public function verify(Request $request)
{
    

    try
    {
        $token              = config('app.TWILIO_AUTH_TOKEN');
        $twilio_sid         = config('app.TWILIO_SID');
        $twilio_verify_sid  = config('app.TWILIO_VERIFY_SID');
        $twilio             = new Client($twilio_sid, $token);
        $phoneNumber        = $request->get('phone_number');
        $verification       = $twilio->verify->v2->services($twilio_verify_sid)->verificationChecks->create($request->get('verification_code'), array('to' => $request->get('phone_number')));
        if ($verification->valid) {
            // Updating table student table that the number is verified & want to return JWT token for authenticate user
            
            return response()->json([
                "status_code"   => 200, 
                "message"       => "Phone number verified."
            ]);
        }
        return response()->json([
            "status_code"   => 200, 
            "message"       => "Verification failed."
        ]);

    }catch (Exception $e){
        return response()->json([
            'response' => [
                'code'          => 401,
                'message'       => "Unable to verify OTP.Please try again.",
            ],
        ]);
    }   

    
}

如何验证另一个表上的已验证用户。

4

0 回答 0