Laravel社交名流通过谷歌登录刷新令牌为空

use*_*232 2 php google-api laravel google-oauth google-my-business-api

我们正在使用一些谷歌 API 函数,所以我们需要,但即使我在驱动程序中添加,access_token它似乎也是空的。我错过了什么?refresh_token'access_type'=>'offline'

\n

这是我的代码

\n
    public function redirectToProvider(){\n        $scopes = array(\n            // 'https://www.googleapis.com/auth/business.manage',\n            'https://www.googleapis.com/auth/plus.business.manage'\n        );\n\n\n        return Socialite::driver('google')->scopes($scopes)->with(['access_type'=>'offline'])->redirect();\n    }\n
Run Code Online (Sandbox Code Playgroud)\n

节省部分

\n
public function googleAuthenticate(){\n        try {\n            $user = Socialite::driver('google')->stateless()->user();\n            $existingUser = GoogleUsers::where('email', $user->email)->first();\n          \n            if($existingUser){\n                // dd($user);\n                // $token = $user->token;\n                // $refreshToken = $user->refreshToken; \n                // $expiresIn = $user->expiresIn;\n                dd($user);\n                return response()->json('Existing User');\n             \n            } else {\n                $token = $user->token;\n                $refreshToken = $user->refreshToken; \n                $expiresIn = $user->expiresIn;\n               \n                $newUser                  = new GoogleUsers;\n\n                dd($user);\n\n                $newUser->name            = $user->name;\n                $newUser->email           = $user->email;\n                $newUser->google_id       = $user->id;\n                $newUser->created_at      = Carbon::now()->toDateTimeString();\n                $newUser->access_token    = $user->token;\n                $newUser->refresh_token   = $user->refreshToken;\n                $newUser->save();\n  \n                // return \\Redirect::route('home');\n                return response()->json($token);\n            }\n    \n            } catch (\\Exception $e) {\n                return response()->json($e);\n        }\n    }\n\n
Run Code Online (Sandbox Code Playgroud)\n

当我执行以下操作时,dd($user)结果如下

\n
Laravel\\Socialite\\Two\\User {#317 \xe2\x96\xbc\n  +token: "ya29.a0AfH6SMBcFflxhdL2RKY6k0xqIFBHqqPHaJSJPoBV2n79ozewB-9RFnBWqXJITUNyAyZlYKyOYjj0QKDDdNOREbitm13TRp4WvD2tGhCTjpcAStukUND-h59Ga0jIh27ay9JN3BQ3MyfmWwimOqryZsFWwJqy_QfVtE4He5eoVpO2mA \xe2\x97\x80"\n  +refreshToken: null\n  +expiresIn: 3599\n  +id: "117177930435384486747"\n  +nickname: null\n  +name: "Michael koh"\n  +email: "user@gmail.com"\n  +avatar: "https://lh6.googleusercontent.com/-Jv5Xr7SXjuE/AAAAAAAAAAI/AAAAAAAAAAA/AMZuucmNjvnp4o-Qc4Au8yMTA1XIwjw_cA/photo.jpg"\n  +user: array:11 [\xe2\x96\xb6]\n  +"avatar_original": "https://lh6.googleusercontent.com/-Jv5Xr7SXjuE/AAAAAAAAAAI/AAAAAAAAAAA/AMZuucmNjvnp4o-Qc4Au8yMTA1XIwjw_cA/photo.jpg"\n}\n
Run Code Online (Sandbox Code Playgroud)\n

Abi*_*gPj 5

尝试这个

 public function redirectToProvider(){
        $scopes = array(
            'https://www.googleapis.com/auth/plus.business.manage'
        );

        $parameters = ['access_type' => 'offline', "prompt" => "consent select_account"];
  
        return Socialite::driver('google')->scopes($scopes)->with($parameters)->redirect();
    }
Run Code Online (Sandbox Code Playgroud)