从 Twitter OAuth2 获取电子邮件

Les*_*ers 1 twitter oauth-2.0 twitter-oauth laravel laravel-socialite

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

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

我正在使用这个函数重定向到 Twitter:

return Socialite::driver($provider)->redirect();
Run Code Online (Sandbox Code Playgroud)

我已经尝试过使用这样的范围:

return Socialite::driver($provider)->scopes(['email'])->redirect();
Run Code Online (Sandbox Code Playgroud)

但 Twitter 是唯一不允许范围的提供商。

回调返回 Facebook 和 google 等其他提供商的电子邮件地址,但在使用 Twitter 时似乎缺少一些东西。

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

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

And*_*per 5

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

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

  • @aderesh 我不敢相信 Twitter 让这件事变得多么困难。我在 20 分钟内为 google、facebook 和 github 实现了自定义 oauth 解决方案。对于 Twitter,我花了一天多的时间,但我仍然不知道如何获取电子邮件地址,如果您要使用第三方进行用户身份验证,这确实是您需要的主要内容。他们的文档是我见过的最糟糕的文档之一,我发现自己不得不离开他们的网站才能找到有关他们自己的 api 的信息。我想我会放弃 Twitter 身份验证。 (4认同)
  • 哇,他们建议迁移到 OAuth2,但他们不提供获取电子邮件的范围。我计划使用 twitter 进行社交登录,但 twitter 是唯一流行的提供商,这使得这变得困难:) (2认同)