我正在使用 Azure 移动服务创建应用后端。该应用程序使用 Azure 移动服务身份(Microsoft、Facebook、Google 和 Twitter)作为其替代登录/注册过程。我在用户第一次登录时创建一个新的用户个人资料,然后如果用户使用不同的社交身份登录,我想自动将其链接到用户现有的个人资料/帐户。
将多个社交身份链接到单个用户时使用的常见模式或最佳实践是什么?
我正在考虑使用的方法是:
当用户使用社交身份登录时,我在移动服务服务器脚本中使用用户对象的getIdentities()函数来返回具有提供者特定数据(userId 和 accessToken)的对象。然后我使用用户 accessToken 从社交 API 中检索用户的电子邮件地址。
一旦我有了用户的电子邮件,请检查该电子邮件地址是否存在于数据库中,以及它是否与不同的 userId(例如 Twitter:userId)相关联,然后链接当前用户对象的 userId(例如 Facebook:userId ) 到帐户。
如何将“登录范围”添加到请求允许我获取用户电子邮件地址的移动服务身份? (例如 Facebook 的“ /me?scope=email ”)
这是一个合适的解决方案吗?使用这种方法我应该考虑哪些问题?