我成功地使用了Laravel 5的社会名流功能,但我觉得它要求的权限比最终用户注册时更有意义。例如,谷歌告诉我的用户,我需要:
了解你的基本个人资料信息和圈子里的人的名单。包括在您的个人资料中不公开的圈子中的人。
和
允许Google让这些圈子里的人知道你已经用Google:Your circles登录了这个应用程序
我只需要用户的名字和电子邮件地址。我该如何缩小范围,让用户不用担心我代发东西?
Laravel的文档列出了以下内容:
http://laravel.com/docs/5.0/authentication#social-认证
return Socialize::with('github')->scopes(['scope1', 'scope2'])->redirect();
但是没有关于我可以使用什么作用域的文档,也没有关于我是否可以删除默认作用域的文档。有什么想法吗?
仅供将来参考,这是您如何更改它:
public function redirectToProvider()
{
$scopes = [
'https://www.googleapis.com/auth/plus.me',
'https://www.googleapis.com/auth/plus.profile.emails.read'
];
return Socialite::driver('google')->scopes($scopes)->redirect();
}
您还可以在此处使用所有google Scope:https://developers.google.com/oauthplayground/
事实证明,这些额外的权限请求只在我的Google开发控制台中禁用API时出现。至于作用域请求为什么会更改,这是没有意义的,但是如果不启用API,请求无论如何都不会工作。启用Google Plus API只需将所有权限更改为“脱机访问”。对于最终用户来说,看起来更干净、更好。