【问题标题】:Tie facebook user to application user将 facebook 用户绑定到应用程序用户
【发布时间】:2017-03-20 16:45:45
【问题描述】:

我正在开发一个 Android 应用程序,并且我有一个使用 JWT 的有效登录系统。用户可以在我的服务器上创建一个帐户,然后可以使用他自己的用户名/密码登录。 我想让用户使用 Facebook 登录,但我希望他的 Facebook 帐户绑定到我服务器上的帐户。

我已将 facebook 登录按钮添加到我的应用程序中,我可以访问 facebook 名称和电子邮件。像这样使用 Facebook 邮箱安全吗?

  • 用户使用 facebook 登录
  • App 获取 Facebook 电子邮件地址并将其发送到服务器
  • 服务器检查电子邮件是否已注册,如果是,则服务器生成 JWT 并且用户现在已登录。如果没有,则服务器创建一个新帐户

我可以信任我从 facebook 登录获得的电子邮件来验证用户身份还是可以被篡改? 有没有更好的方法来实现这一目标?谢谢。

编辑:实际上我知道仅将电子邮件发送到我的服务器是不安全的。我也在考虑发送 Facebook 访问令牌,然后在服务器端检查它是否有效。这是一个好方法吗? 此外,我不需要用户提供有效的电子邮件地址,我只需要每个用户的唯一标识符。

【问题讨论】:

  • 许多用户甚至没有在 Facebook 存档的电子邮件地址,因为他们只使用手机进行注册。
  • 是的,我在 Facebook API 文档上读过。我正在考虑唯一的用户名“@facebook.com”,以防用户没有电子邮件。我想知道我是否可以相信我从 Facebook 登录结果中获得的信息,或者是否有更好的方法将 Facebook 用户与我的服务器用户联系起来。
  • username@facebook.com 这个东西很久以前就被弃用了;在那里发送的消息不再进入用户的收件箱,只有旧版支持,因为它将所有传入的消息转发到用户的外部电子邮件......
  • 这对我的目的来说不是问题,我只需要为来自 Facebook 的每个用户提供独特的东西。我已经编辑了我的问题。
  • 是的,将令牌发送到服务器是通常的方法。对于唯一值,只需获取应用范围内的用户 ID。

标签: android facebook login facebook-login


【解决方案1】:

总结一下:

  • 用户使用 facebook 按钮登录
  • 应用程序将用户 ID 和 facebook 访问令牌发送到服务器
  • 服务器使用 facebook graphs api 检查令牌是否有效
  • 服务器将 facebook 用户 ID 绑定到本地帐户(如有必要,创建一个新帐户)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-21
    • 1970-01-01
    • 2011-06-30
    • 2011-06-14
    • 1970-01-01
    • 2014-10-15
    相关资源
    最近更新 更多