在Laravel Socialite中,我们被重定向到facebook。但当用户取消(不允许facebook访问公共配置文件)时,它会给出错误丢失授权例外
RequestException中的ClientException。php第107行:客户端错误:GEThttps://graph.facebook.com/oauth/access_token?client_id=1309844325833234
我不想显示这个相反,我想通过给一个消息"Facebook登录失败"返回到我的网站主页,就像stackoverflow facebook登录中显示的那样。
最后我得到了答案。给你
public function handleProviderCallback()
{
try {
$user = Socialite::driver('facebook')->user();
} catch (\Exception $e) {
//Here you can write excepion Handling Logic
}
}
试抓并没有给我带来好的结果。我使用以下方法来捕获此错误。如果您使用的是Laravel Socialite库,它肯定有函数调用handleProviderCallback
。在这种情况下,请使用此代码
handleProviderCallback
方法
/**
* Obtain the user information from GitHub.
*
* @return Response
*/
public function handleProviderCallback()
{
$error_code = Input::get('error_code');
if ($error_code == 200)
{
return redirect()->route('sign-in')->with('error','You\'ve chose not to grant us permission to connect with your Facebook account.');
}
else
{
$fbUser = Socialite::driver('facebook')->user();
# rest of your code
}
}
好吧,如果你看看错误页面(Laravel黑色筛选)来你检查该页面的网址。它有这些get方法错误
,error_code
,error_description
,error_reason
,状态
。
Ex:http://localhost:8000/login/facebook/callback?error=access_denied
您可以使用基于错误的开关
语句检查此Facebook错误代码,并传递错误消息。