【问题标题】:Laravel Socialite: Oauth 2 Rejection WorkflowLaravel Socialite:Oauth 2 拒绝工作流程
【发布时间】:2017-05-03 21:02:58
【问题描述】:

当用户从社交(在本例中为 LinkedIn)页面取消 OAuth 授权请求时,我正在尝试“拒绝”工作流程

RequestException.php 第 111 行中的ClientException:客户端错误:POST https://www.linkedin.com/oauth/v2/accessToken 导致400 Bad Request 响应:{"error":"missing_parameter","error_description":"A 缺少必需的参数“code””}

控制器有标准代码:

public function redirect()
{
    return Socialite::driver('linkedin')->redirect();
}

public function callback()
{
    $providerUser = Socialite::driver('linkedin')->user();
    ...
}

如果用户在社交网站上单击允许/接受,它会正常工作。用户取消时抛出异常。

我无法弄清楚如何处理用户的“拒绝”场景。

【问题讨论】:

    标签: laravel laravel-5 oauth oauth2 laravel-socialite


    【解决方案1】:

    callback 函数中添加一个try catch 块用于异常并做任何你想做的事情。

    try {
    
        $user = Socialite::driver('facebook')->user();
    
    } catch (\Exception $e) {
        return redirect('redirect'); // This will ask for access from user again. I don't prefer
        // Do whatever you like
    }
    

    【讨论】:

      【解决方案2】:

      经过长时间的搜索,解决方案是从范围中删除'r_liteprofile'并将'r_basicprofile'放入vendor\laravel\socialite\src\Two\LinkedInProvider.php

      应该是: protected $scopes = ['r_basicprofile', 'r_emailaddress'];

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-01-09
        • 1970-01-01
        • 2018-06-19
        • 2016-09-28
        • 1970-01-01
        • 2022-08-11
        • 1970-01-01
        相关资源
        最近更新 更多