【问题标题】:Get email from twitter OAuth2从 twitter OAuth2 获取电子邮件
【发布时间】:2022-01-15 07:38:27
【问题描述】:

我在 Laravel 中使用 Socialite 来登录 Twitter。

我知道并非所有 Twitter 用户的帐户都附有电子邮件,但对于我的应用程序,用户确实需要一个电子邮件地址。我可以阻止没有附加电子邮件的人登录,但目前每个用户的电子邮件字段都设置为空。

我正在使用此功能重定向到 twitter:

return Socialite::driver($provider)->redirect();

我已经尝试过使用这样的作用域:

return Socialite::driver($provider)->scopes(['email'])->redirect();

但 twitter 是唯一不允许范围的提供程序。

回调返回 facebook 和 google 等其他提供商的电子邮件地址,但我在使用 twitter 时似乎遗漏了一些东西。

对于 OAuth1,有一个设置可以启用返回电子邮件字段的选项,但由于 twitter 接受 OAuth2,我无法在 Twitter 开发人员面板中找到此设置。

由于有关此主题的大部分信息都已过时,因此我将不胜感激。

【问题讨论】:

    标签: laravel twitter oauth-2.0 twitter-oauth laravel-socialite


    【解决方案1】:

    Twitter 的新 Oauth 2.0 用户身份验证当前(在撰写此答案时)不提供对用户电子邮件地址的访问权限,并且需要添加额外的范围。这是 Twitter API 路线图上的一个已知功能请求。

    您仍然可以使用 OAuth 1.0A 并设置选项以请求用户的电子邮件地址。

    【讨论】:

      【解决方案2】:

      在 twitter 开发者仪表板中找到了解决方案。

      首先进入应用的设置。

      然后您必须填写指向您的隐私政策和条款页面的链接。

      之后还启用 OAuth 1.0 en 然后会弹出一个选项以接收来自尝试登录的用户的电子邮件地址。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-12
        • 2015-07-16
        • 2018-07-24
        • 2016-11-11
        相关资源
        最近更新 更多