如何减少 Laravel 5 中的社交名流范围?

Posted

技术标签:

【中文标题】如何减少 Laravel 5 中的社交名流范围?【英文标题】:How do I reduce the Socialite scope in Laravel 5? 【发布时间】:2015-07-14 03:03:45 【问题描述】:

我成功地使用了 Laravel 5 的社交名流功能,但我觉得它要求的权限比最终用户注册时的意义要多。例如,Google 告诉我的用户我需要:

了解您的基本个人资料信息和您圈子中的人员列表。 包括未在您的个人资料上公开的圈子中的人。

允许 Google 让这些圈子中的人知道你有 使用 Google 登录此应用:您的圈子

我只需要用户名和电子邮件地址。如何缩小范围,让用户不必担心我代表他们发布内容?

Laravel 的文档列出了这个:

http://laravel.com/docs/5.0/authentication#social-authentication

return Socialize::with('github')->scopes(['scope1', 'scope2'])->redirect();

但是没有关于我可以使用哪些范围或是否可以删除默认范围的文档。有什么想法吗?

【问题讨论】:

【参考方案1】:

仅供参考,您可以通过以下方式对其进行更改:

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/

【讨论】:

【参考方案2】:

事实证明,这些额外的权限请求仅在我的 Google 开发控制台中禁用 API 时出现。范围请求为什么会改变是没有意义的,但是如果没有启用 API,请求无论如何都不会工作。启用 Google Plus API 只是将所有权限更改为“离线访问”。对最终用户来说看起来更干净、更好。

【讨论】:

以上是关于如何减少 Laravel 5 中的社交名流范围?的主要内容,如果未能解决你的问题,请参考以下文章

社交名流 laravel 5.4 Facebook 提供商

如何测试 Laravel 社交名流

如何在 laravel 中使用社交名流和护照创建 REST API

Laravel JWT 和社交名流插件

Laravel 社交名流推特

Laravel 社交名流:InvalidStateException(有时)