I am using the https://github.com/jaredhanson/passport-windowslive NPM package to implement Microsoft account authentication for my NodeJS app. Recently (since 22 April), I have been seeing a few cases in my server logs that show a user trying to login, but the data in the OAuth callback to our server contains an empty array for the emails. This is despite me explicitly specifying the wl.signin,wl.emails scopes. These cases are rare (happens once or twice a day), but frequent enough to make my service monitoring alerts annoying.
This is the user object returned: Note that apart from the user ID, which i hid away for privacy reasons, all the other fields are indeed null or empty as attached in the callback.
{"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}}
Did something change in the Windows Live API server recently? Is there a bug somewhere?