1

我认证谷歌账户使用蔚蓝服务在visual studio(c#)中。谷歌认证使用azure服务

我得到访问令牌从谷歌帐户。

如何从该访问令牌获取用户信息?

我的服务器端代码

var user = User as ServiceUser; 
var identities = await user.GetIdentitiesAsync(); 
var googleCredential = identities[0] as Microsoft.WindowsAzure.Mobile.Service.Security.GoogleCredentials; 
var accessToken = googleCredential.AccessToken; 

回答

1

你要直接去跟谷歌API与客户令牌获取有关用户的信息。

这里是一个博客帖子的链接:http://blogs.msdn.com/b/carlosfigueira/archive/2012/10/25/getting-user-information-on-azure-mobile-services.aspx

下面是谷歌的API的链接:https://developers.google.com/api-client-library/dotnet/guide/aaa_oauth#windows-phone-81

这里是一个Node.js的后端的例子:

function insert(item, user, request) { 
    item.UserName = "<unknown>"; // default 
    user.getIdentities({ 
     success: function (identities) { 
      var req = require('request'); 
      if (identities.google) { 
       var googleAccessToken = identities.google.accessToken; 
       var url = 'https://www.googleapis.com/oauth2/v3/userinfo?access_token=' + googleAccessToken; 
       req(url, function (err, resp, body) { 
        if (err || resp.statusCode !== 200) { 
         console.error('Error sending data to Google API: ', err); 
         request.respond(statusCodes.INTERNAL_SERVER_ERROR, body); 
        } else { 
         try { 
          var userData = JSON.parse(body); 
          item.UserName = userData.name; 
          request.execute(); 
         } catch (ex) { 
          console.error('Error parsing response from Google API: ', ex); 
          request.respond(statusCodes.INTERNAL_SERVER_ERROR, ex); 
         } 
        } 
       }); 
      } else { 
       // Insert with default user name 
       request.execute(); 
      } 
     } 
    }); 
} 
+0

是有任何其他方式从服务器端控制器获取用户信息形式访问令牌? –