我正在尝试"拒绝"用户取消来自Social(本例中为LinkedIn)页面的OAuth授权请求时的工作流程
RequestException.php第111行中的ClientException:客户端错误:
POST https://www.linkedin.com/oauth/v2/accessToken
导致400 Bad Request
响应:{"错误":" missing_parameter",&# 34; ERROR_DESCRIPTION":" A 必需参数\"代码\"缺少"}
控制器具有标准代码:
public function redirect()
{
return Socialite::driver('linkedin')->redirect();
}
public function callback()
{
$providerUser = Socialite::driver('linkedin')->user();
...
}
如果用户在社交网站上单击“允许/接受”,则可以正常工作。当用户取消时,它会抛出异常。
我无法弄清楚如何处理用户"拒绝"场景。
答案 0 :(得分: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
}
答案 1 :(得分:0)
经过长时间的搜索,解决方案是从范围中删除“ r_liteprofile”并将“ r_basicprofile”放入vendor \ laravel \ socialite \ src \ Two \ LinkedInProvider.php
应为:
protected $scopes = ['r_basicprofile', 'r_emailaddress'];