提问者:小点点

如何处理laravel社交名流“缺少授权例外”


在Laravel Socialite中,我们被重定向到facebook。但当用户取消(不允许facebook访问公共配置文件)时,它会给出错误丢失授权例外

RequestException中的ClientException。php第107行:客户端错误:GEThttps://graph.facebook.com/oauth/access_token?client_id=1309844325833234

我不想显示这个相反,我想通过给一个消息"Facebook登录失败"返回到我的网站主页,就像stackoverflow facebook登录中显示的那样。


共2个答案

匿名用户

最后我得到了答案。给你

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_codeerror_descriptionerror_reason状态

Ex:http://localhost:8000/login/facebook/callback?error=access_denied

您可以使用基于错误的开关语句检查此Facebook错误代码,并传递错误消息。