我有一个使用 facebook 登录的 laravel 项目。但经过几天的测试,当我去路线时,它说Sorry, something went wrong.。我没有触摸或修改我的代码以及我的 Facebook 开发者帐户中的应用程序。有人能告诉我发生了什么事吗?
这是我的控制器
public function redirectToProvider(){
$facebookScope = [
'pages_manage_posts',
'pages_read_engagement',
'instagram_basic',
'pages_show_list',
'manage_pages',
'publish_to_groups',
'groups_access_member_info',
];
return Socialite::driver('facebook')->scopes($facebookScope)->redirect();
}
public function facebook(){
try {
$user = Socialite::driver('facebook')->stateless()->user();
// dd($user);
// $this->getPages($user);
$this->getGroups($user);
} catch (\Exception $e) {
return response()->json($e);
}
}
Run Code Online (Sandbox Code Playgroud)
路线
Route::get('/fb','FacebookController@redirectToProvider');
Route::get('/facebookAuth','FacebookController@facebook');
Run Code Online (Sandbox Code Playgroud)
结果是什么样的
拉拉维尔版本:6.2
名媛版:^4.4
更新:如果我删除所有范围,我可以成功登录并获取凭据和令牌。但为什么示波器不起作用?
我们正在使用一些谷歌 API 函数,所以我们需要,但即使我在驱动程序中添加,access_token它似乎也是空的。我错过了什么?refresh_token'access_type'=>'offline'
这是我的代码
\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 }\nRun Code Online (Sandbox Code Playgroud)\n节省部分
\npublic 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 …Run Code Online (Sandbox Code Playgroud)