【问题标题】:how to handle laravel socialite "Missing authorization Exception"如何处理 laravel 社交名媛“缺少授权异常”
【发布时间】:2016-06-28 15:13:25
【问题描述】:
【问题讨论】:
标签:
laravel
facebook-login
laravel-5.2
laravel-socialite
【解决方案1】:
我终于得到了答案。这里是
public function handleProviderCallback()
{
try {
$user = Socialite::driver('facebook')->user();
} catch (\Exception $e) {
//Here you can write excepion Handling Logic
}
}
【解决方案2】:
尝试 catch 并没有给我带来好的结果。我使用以下方法来捕获此错误。如果你使用的是 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
}
}
这个error_code 来自哪里??
好吧,如果您查看错误页面(Laravel Black 已筛选),请检查该页面的 URL。它有这些get方法error,error_code,error_description,error_reason,state。
例如:http://localhost:8000/login/facebook/callback?error=access_denied&error_code=200&error_description=Permissions+error&error_reason=user_denied&state=mIxNjoDCogT2piMV5LX1Imk6GWNzqPUt3JZaqsIo#_=_
我能做些什么来优化它
您可以使用基于错误Check this Facebook error codes 的switch 语句,并带有错误消息并传递它。