Servicios móviles de Azure – Obtener más información del usuario

Heredé una aplicación de Windows 8 que está escrita con XAML. Así que en C # cuando hago esta llamada

user = await MobileServices.MobileService .LoginAsync(MobileServiceAuthenticationProvider.MicrosoftAccount); 

(Esto es para servicios móviles de Azure)

El objeto de usuario SOLAMENTE me da el token y la cuenta de Microsoft: …………..

Para poder autenticar a las personas, necesito poder ver que la OMS está solicitando acceso …

¿Estoy mirando artículos como abajo, pero parece que me falta algo? ¿Es este javascript en el artículo algo que tendría que escribir en Node.js?

Artículo de ejemplo: http://blogs.msdn.com/b/carlosfigueira/archive/2013/12/12/expanded-login-scopes-in-azure-mobile-services.aspx

Actualmente, para poder obtener más información sobre el usuario que inició sesión, debe realizar una segunda llamada al servicio para recuperar la información del usuario. Realmente no es necesario solicitar ámbitos de inicio de sesión adicionales (el tema de la publicación que mencionó) para recuperar el nombre de usuario, ya que se proporciona de forma predeterminada para todos los proveedores.

Esta publicación debe tener el código que necesita para escribir en el lado del servidor (node.js) para obtener más información sobre el usuario que ha iniciado sesión. La versión de TL; DR se da a continuación:

En el lado del servidor: agregue esta API personalizada (la llamaré ” userInfo “; establezca el permiso de GET en “user”, y todos los demás en admin):

 exports.get = function(request, response) { var user = request.user; user.getIdentities({ success: function(identities) { var accessToken = identities.microsoft.accessToken; var url = 'https://apis.live.net/v5.0/me/?method=GET&access_token=' + accessToken; var requestCallback = function (err, resp, body) { if (err || resp.statusCode !== 200) { console.error('Error sending data to the provider: ', err); response.send(statusCodes.INTERNAL_SERVER_ERROR, body); } else { try { var userData = JSON.parse(body); response.send(200, userData); } catch (ex) { console.error('Error parsing response from the provider API: ', ex); response.send(statusCodes.INTERNAL_SERVER_ERROR, ex); } } } var req = require('request'); var reqOptions = { uri: url, headers: { Accept: "application/json" } }; req(reqOptions, requestCallback); } }); } 

En el lado del cliente, después de un inicio de sesión exitoso, llame a esa API:

 user = await MobileServices.MobileService .LoginAsync(MobileServiceAuthenticationProvider.MicrosoftAccount); var userInfo = await MobileServices.MobileService.InvokeApiAsync( "userInfo", HttpMethod.Get, null); 

userInfo contendrá un objeto JObject con la información del usuario. Hay una solicitud de función abierta para mejorar esto en http://feedback.azure.com/forums/216254-mobile-services/suggestions/5211616-ability-to-intercept-the-login-response .