我为移动应用程序提供一个Web REST API,支持使用用户名/密码和令牌进行经典的注册/登录。由于注册没有电子邮件确认,如何实现与Facebook服务的安全注册/登录/连接?
我的第一种方法:我从移动应用程序中获取facebook_id
、facebook_email
和facebook_name
:
通过Facebook搜索用户,如果存在则返回该用户,否则使用这些参数创建新用户
问题:我假定任何其他应用程序都可以轻松地找到
facebook_id
,因此没有阻止我假定我是别人并使用他的facebook_id
进行登录可能的解决方案:也从移动应用程序中获取
access_token
,并在服务器端检查access_token
是否与收到的facebook_email
相匹配
另一个问题可能是:
- 个人A正在使用
personB@fake.com
电子邮件创建经典帐户 - 一周后,个人B连接了自己的Facebook帐户(与相同的
personB@fake.com
电子邮件)。首要想法是将经典帐户与此Facebook帐户链接起来。但是,然后个人B将接管个人A的帐户。
可选:移动应用程序令牌过期的最佳实践是什么?我读到过2小时左右的内容,但是我认为Facebook
应用程序仍然登录了半年。为确保安全性,请假设我可以从客户端获取任何重要信息(访问令牌、电子邮件等)在我的Web服务中:在这种情况下,什么是能够确保最佳安全性的最佳实践:即使客户端
规则:是否应该有两个不同的服务用于登录和注册?无论如何,一个快速的指南/逐步流程将是完美的。