2016-04-29 30 views
4

我正在使用https://github.com/jaredhanson/passport-windowslive NPM軟件包爲我的NodeJS應用程序實施Microsoft帳戶身份驗證。最近(自4月22日以來),我在服務器日誌中看到一些顯示用戶嘗試登錄的情況,但OAuth回撥到我們服務器的數據包含電子郵件的空數組。儘管我明確指定了wl.signin,wl.emails範圍。這些情況很少發生(每天發生一次或兩次),但頻率足以讓我的服務監控警報令人煩惱。沒有與wl.signin一起返回的電子郵件數據,wl.emails範圍

這是返回的用戶對象:請注意,除了用戶ID,我隱藏的原因是隱藏的,所有其他字段在回調中都是空或空的。 {"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服務器上做了些改變嗎?有什麼地方有bug嗎?

回答

0

不知道您是否找到了解決問題的方法。無論如何,我偶然發現了同樣的問題。

顯然,只有在缺少「名字」和「姓氏」的情況下,您纔會收到電子郵件地址。如果填寫了這些信息,將不會提供電子郵件。 (對我來說,這是不正確的,可能是因爲這種行爲在一段時間內改變了我的MS)

但我發現,有一個特殊的範圍權限:「wl.contacts_emails」

範圍我「M使用現在看起來是這樣的:‘wl.signin,wl.emails,wl.contacts_emails’

當我想的Oauth我被指出的是,我會提供我的電子郵件地址,如果我繼續。我相信這是我們兩人之後的行爲。

將確認這是否解決了我們的問題後,我們的日誌將清理一段較長的時間。

如果其他人能夠重現此問題,如果他/她能確認這是否是我之前的有效解決方案,那將是非常好的。

0

我有這個問題。原來這是用戶帳戶的問題。

我進入了我的帳戶(OneDrive)並在個人資料中的選擇列表中(從「未選中」更改爲我的帳戶電子郵件地址)更改了我的個人電子郵件地址。之後,API開始返回正確的細節。

看起來像一個內部錯誤 - 如果沒有其他設置,應該默認爲帳戶電子郵件。

+0

你有一個驅動器的選擇列表?如果我想在onedrive上改變某些東西,我總是會將其重定向到我的profile.live.com - 我仍然努力以某種方式重現原始問題中的問題。任何提示? –

相關問題