【发布时间】: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