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

如何处理laravel社交名流;缺少授权例外情况“;,laravel,facebook-login,laravel-5.2,laravel-socialite,Laravel,Facebook Login,Laravel 5.2,Laravel Socialite,在Laravel Socialite中,我们被重定向到facebook。但当用户取消(不允许facebook访问公共配置文件)时,它会给出错误丢失授权例外 RequestException.php第107行中的ClientException:客户端错误:GET ` 导致400个错误的请求响应:{“错误”:{“消息”:“丢失” 授权 代码,“类型”:“OAutheException”,“代码”:1,“fbtrace_id”:“Aq9wMwG6ewl”} 我不想显示这个,而是想返回我的网站主页,给出

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

RequestException.php第107行中的ClientException:客户端错误:GET ` 导致400个错误的请求响应:{“错误”:{“消息”:“丢失” 授权 代码,“类型”:“OAutheException”,“代码”:1,“fbtrace_id”:“Aq9wMwG6ewl”}


我不想显示这个,而是想返回我的网站主页,给出一条“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
    }
}

这个
错误\u code
来自哪里?? 好的,如果你看到错误页面(Laravel黑屏),来检查该页面的URL。它具有以下获取方法:
error
error\u code
error\u description
error\u reason
state

例:
http://localhost:8000/login/facebook/callback?error=access_denied&error_code=200&error_description=Permissions+错误和错误\u原因=用户\u被拒绝&state=mIxNjoDCogT2piMV5LX1Imk6GWNzqPUt3JZaqsIo


我能做些什么来优化它 您可以使用基于错误的
switch
语句以及错误消息并传递它