2016-04-29 6 views
4

Ich verwende das NPM-Paket https://github.com/jaredhanson/passport-windowslive, um die Microsoft-Kontoauthentifizierung für meine NodeJS-Anwendung zu implementieren. Kürzlich (seit dem 22. April) habe ich einige Fälle in meinen Serverprotokollen gesehen, die zeigen, dass ein Benutzer sich anmeldet, aber die Daten im OAuth-Callback zu unserem Server enthalten ein leeres Array für die E-Mails. Dies ist trotz der expliziten Angabe der wl.signin,wl.emails Bereiche. Diese Fälle sind selten (passiert ein- oder zweimal am Tag), aber häufig genug, um meine Dienstüberwachungsbenachrichtigungen störend zu machen.Keine E-Mail-Daten mit wl.signin, wl.emails Bereichen zurückgegeben

Dies ist das zurückgegebene Benutzerobjekt: Beachten Sie, dass abgesehen von der Benutzerkennung, die ich aus Datenschutzgründen ausgeblendet habe, alle anderen Felder tatsächlich leer oder leer sind, wie im Rückruf hinzugefügt. {"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}}

Hat sich in letzter Zeit etwas am Windows Live API-Server geändert? Gibt es irgendwo einen Fehler?

Antwort

0

Nicht sicher, ob Sie eine Lösung für Ihr Problem gefunden haben. Jedenfalls bin ich auf dasselbe Problem gestoßen.

Anscheinend erhalten Sie E-Mail-Adresse nur, wenn "Vorname" und "Nachname" fehlen. Wenn diese Informationen ausgefüllt sind, wird keine E-Mail gesendet. (In meinem Fall, die nicht wahr war, könnte sein, dass dieses Verhalten meiner MS im Laufe der Zeit geändert wurde)

Aber ich fand heraus, dass es eine spezielle Erlaubnis Umfang ist: „wl.contacts_emails“

Scope I bin mit sieht nun wie folgt aus: ‚wl.signin, wl.emails, wl.contacts_emails‘

Als ich Oauth versucht habe ich bemerkt, dass ich meine E-Mail-Adresse angeben, wenn ich weiter. Ich glaube, das ist das Verhalten, nach dem wir beide streben.

Wird bestätigen, wenn dies mein Problem behoben, nachdem unsere Protokolle für einen längeren Zeitraum sauber sind.

Wenn jemand anderes das Problem reproduzieren kann, wäre es toll wenn er/sie bestätigen könnte, ob dies eine gültige Lösung vor mir ist.

0

Ich hatte dieses Problem. Es stellte sich heraus, dass es ein Problem mit dem Benutzerkonto war.

Ich ging in mein Konto (OneDrive) und änderte meine persönliche E-Mail-Adresse in der Auswahlliste (von "nicht ausgewählt" zu meiner Konto-E-Mail-Adresse) im Profil. Danach hat die API mit der Rückgabe der korrekten Details begonnen.

Scheint wie ein interner Fehler - sollte standardmäßig auf die Konto-E-Mail, wenn nicht anders festgelegt.

+0

Sie haben eine Auswahlliste in einem Laufwerk? wenn ich etwas auf onedrive ändern möchte, werde ich immer zu meinem profile.live.com weitergeleitet - ich kämpfe immer noch, um irgendwie das Problem in der ursprünglichen Frage zu reproduzieren. irgendwelche Hinweise? –

Verwandte Themen