【问题标题】:Making it mendatory to get email with facebook oAuth with Socialite强制使用社交名流通过 facebook oAuth 获取电子邮件
【发布时间】:2016-09-26 19:49:56
【问题描述】:

我正在尝试使用 facebook oAuth 让我的用户登录/注册到我的网站。为此,我需要用户的电子邮件地址

Facebook oAuth 对话框可以选择提供/不提供电子邮件,但即使用户没有提供他们的电子邮件,我也无法再次向 facebook 重新请求授权,因为它认为用户已登录并简单地重定向到回调 url .

我正在使用 Laravel 和 Socialite 包。

有什么解决办法吗??

【问题讨论】:

  • 请注意,并非 Facebook 上的所有用户都有电子邮件。
  • 他们如何登录?电话号码?

标签: facebook laravel facebook-graph-api oauth


【解决方案1】:

Socialite允许您使用授权成功后直接获取用户信息

$user = Socialite::driver('facebook')->user();
$user->email;

如果用户同意与应用分享她,我希望$user->email 包含用户的电子邮件地址,如果用户拒绝分享电子邮件地址,我希望它为空。
如果$user->email 为空,则抛出错误并要求用户重新授权。如果它不起作用,您可以尝试取消对用户的授权,可以找到指南 here


避免任何问题的一种简便方法是显示警告,如果用户想使用 Facebook 登录,则应允许共享电子邮件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多