我成功地使用了Laravel 5的Socialite功能,但是我觉得它要求的权限比最终用户注册时更有意义。例如,Google告诉我的用户我需要:
了解您的基本个人资料信息和圈子中的人列表。 包括在您的个人资料上不公开的圈子的人。
和
允许Google让这些圈子里的人知道您有 与Google登录此应用程序:您的圈子
我只需要用户的姓名和电子邮件地址。我如何减少范围,以便用户不必担心我代表他们发布内容?
Laravel的文档列出以下列表:
http://laravel.com/docs/5.0/authentication#social-authentication
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范围玩:https://developers.google.com/oauthplayground/
事实证明,这些额外的权限请求仅在我的Google Dev Console中禁用API时出现。对于为什么范围请求会更改的原因是没有意义的,但是无论如何,该请求在没有启用API的情况下无法正常工作。启用Google Plus API只是将所有权限更改为"离线访问"。对于最终用户来说,看起来更干净,更好。