live-sdk - wl.signin,wl.emails 范围没有返回电子邮件数据

标签 live-sdk

我正在使用 https://github.com/jaredhanson/passport-windowslive用于为我的 NodeJS 应用程序实现 Microsoft 帐户身份验证的 NPM 包。最近(自 4 月 22 日以来),我在服务器日志中看到一些情况,显示用户尝试登录,但我们服务器的 OAuth 回调中的数据包含电子邮件的空数组。尽管我明确指定了 wl.signin,wl.emails范围。这些情况很少见(每天发生一两次),但频繁到足以让我的服务监控警报烦人。

这是返回的用户对象:请注意,除了我出于隐私原因隐藏的用户 ID 之外,所有其他字段在回调中都确实为 null 或为空。 {"id":"<id hidden>","displayName":null,"name":{"familyName":null,"givenName":null},"emails":[],"photos":[{"value":"https://apis.live.net/v5.0/<id hidden>/picture"}],"provider":"windowslive","_raw":"{\r \"id\": \"<id hidden>\", \r \"name\": null, \r \"first_name\": null, \r \"last_name\": null, \r \"gender\": null, \r \"emails\": {\r \"preferred\": null, \r \"account\": null, \r \"personal\": null, \r \"business\": null\r }, \r \"locale\": null\r}","_json":{"id":"<id hidden>","name":null,"first_name":null,"last_name":null,"gender":null,"emails":{"preferred":null,"account":null,"personal":null,"business":null},"locale":null}}
最近 Windows Live API 服务器有什么变化吗?某处有错误吗?

最佳答案

不确定您是否找到了解决问题的方法。无论如何,我偶然发现了同样的问题。

显然,只有在缺少“名字”和“姓氏”的情况下,您才会获得电子邮件地址。如果填写了该信息,则不会提供电子邮件。 (在我的情况下,这不是真的,可能是这种行为随着时间的推移改变了我的 MS)

但是我发现有一个特殊的范围权限: “wl.contacts_emails”

我现在使用的范围看起来像这样: "wl.signin,wl.emails,wl.contacts_emails"

当我尝试 Oauth 时,我注意到如果我继续,我将提供我的电子邮件地址。我相信这是我们都追求的行为。

在我们的日志清理一段时间后,将确认这是否能解决我的问题。

如果其他人可以重现这个问题,如果他/她能在我之前确认这是否是一个有效的解决方案,那就太好了。

关于live-sdk - wl.signin,wl.emails 范围没有返回电子邮件数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36945430/

相关文章:

javascript - 为什么 Microsoft Skydrive 不下载多个文件,即使 MS 示例显示了它? (wl.下载)

c# - 如何从 SkyDrive 下载文件到 IsolatedStorage?

outlook - "SSL23_GET_SERVER_HELLO:unknown protocol"尝试访问 Outlook smtp 服务器时出错

ios - iOS Swift 中的 OneDrive SDK : Conflict between LiveOperationDelegate and LiveDownloadOperationDelegate protocols

android - 如何使用 OneDrive API Android 获取配置文件详细信息

security - Microsoft 帐户 JWT 身份验证 token 是如何签名的?

c# - GetExternalLoginInfoAsync 的实现不同于 LiveAuthClient.GetUserId(authToken)?