将 Azure 移动服务迁移到 Azure 移动应用:UserId 已更改
Posted
技术标签:
【中文标题】将 Azure 移动服务迁移到 Azure 移动应用:UserId 已更改【英文标题】:Migration Azure Mobile Services to Azure Mobile App: UserId has changed 【发布时间】:2016-12-18 19:32:44 【问题描述】:我正面临一个有趣的挑战,因为我正在设置一个全新的 Azure 移动应用实例,该实例连接到在生产中运行的现有 Azure 移动服务的现有数据库。
使用 AMS 在生产中运行的应用具有 Microsoft 帐户身份验证,我们使用 context.userid
字段在服务器端过滤用户的数据。这个字段看起来像MicrosoftAccount:abcdef...
。
在设置一个支持 Microsoft 身份验证的新 Azure 移动应用后,我得到了一个不同的 userId,例如 sid:ABC...
使用文档,我能够使用getIdentity()
api 获取有关用户身份的更多详细信息:
context.user.getIdentity().then((data) => );
但我仍然无法找到在 AMS 世界中使用的“旧”用户 ID……因此我无法在现有数据和新应用之间建立链接。
有什么想法吗?
【问题讨论】:
【参考方案1】:我想知道context.userid
是否准确地表示电子邮件地址。
但是,您可以通过以下方式获取登录用户的帐户电子邮件。
context.user.getIdentity().then(function (userInfo)
var userId = userInfo.aad.claims.emailaddress;
);
【讨论】:
问题是在现有数据库(用于生产)中,我没有用户的电子邮件地址。我只有 Azure 移动服务可用的 userId... @jalfp,由于用户ID应该由每个IDP提供,sid
是Azure移动应用提供的会话ID。您可以登录 https://user_claims
部分中。然后您可以尝试在 context.user
对象中找到您的用户 ID,因为它包含根据源代码:github.com/Azure/azure-mobile-apps-node/blob/master/src/auth/…以上是关于将 Azure 移动服务迁移到 Azure 移动应用:UserId 已更改的主要内容,如果未能解决你的问题,请参考以下文章