Php 只有在生成JWT时第二次尝试后才返回正确的响应

Php 只有在生成JWT时第二次尝试后才返回正确的响应,php,lumen,laravel-socialite,Php,Lumen,Laravel Socialite,我试图使用和在一起,但我面临着一些问题 我的目标是更新数据库中用户的profile\u image\u url字段(如果用户已经存在),并给他令牌,如果用户不存在,则创建它并给他令牌 这就是我现在正在做的: public function handleProviderCallback(Request $request){ try{ $providerUser = Socialite::driver('facebook')->stateless()-

我试图使用和在一起,但我面临着一些问题

我的目标是更新数据库中用户的
profile\u image\u url
字段(如果用户已经存在),并给他令牌,如果用户不存在,则创建它并给他令牌

这就是我现在正在做的:

public function handleProviderCallback(Request $request){

        try{
            $providerUser = Socialite::driver('facebook')->stateless()->userFromToken($request->fb_token);

            $user = User::query()->firstOrNew(['email' => $providerUser->getEmail()]);
          }catch(Exception $e){
              return new JsonResponse(['status' => 'error', 'message' => 'Woops, some error happened']);
          }

          if(!$user->exists){
            $user->name = $providerUser->getName();
            $user->profile_image_url = $providerUser->getAvatar();
            $user = $user->save();
          }else{
              $user->update(['profile_image_url' => $providerUser->getAvatar()]);
          }

          $token = JWTAuth::fromUser($user);

          return $this->onAuthorized($token, $user);
     }
这就是我在授权后返回的内容:

protected function onAuthorized($token, $user){
        return new JsonResponse([
            'status' => '40002',
            'message' => 'Successfully logged in with facebook',
            'user' => [
                'user_id' => $user->id,
                'name' => $user->name,
                'email' => $user->email,
                'profile_image_url' => $user->profile_image_url,
                'token' => $token
            ]
        ]);
    }
但是,如果用户不存在,即使它将用户保存到数据库中,第一次尝试时也会出现以下错误:

类型错误:传递给Tymon\JWTAuth\JWT::fromUser()的参数1必须 实现接口Tymon\JWTAuth\Contracts\JWTSubject,给定布尔值, 叫来 /var/www/goodzapp.com/api/vendor/illumb/support/Facades/Facade.php 在线221

我做错了什么?谁能给我解释一下吗。任何帮助都将不胜感激