如何使用iOS Google ID Token从后端(Node JS)获取用户的完整个人资料?

时间:2017-11-10 02:26:20

标签: ios node.js google-signin

我使用Google登录iOS SDK登录,然后将GIDGoogleUser.authentication.idToken传递给服务器,然后我在Node JS中进行验证。以下代码中的验证工作正常。 "有效载荷" var最终与用户的基本信息一致。

如何将idToken转换为可用于git the people.get端点的凭据? (我想知道用户是否使用默认的Google个人资料照片,并且可以从people.get端点获取。)这似乎没有在任何地方记录。 https://developers.google.com/people/api/rest/v1/people/get

var auth = new GoogleAuth;
      var client = new auth.OAuth2(GoogleUtils.clientIDs, '', '');
      client.verifyIdToken(
          token,
          GoogleUtils.clientIDs,
          // Or, if multiple clients access the backend:
          //[CLIENT_ID_1, CLIENT_ID_2, CLIENT_ID_3],
          function(e, login) {
            if (e) {
              return next(e, null);
            }
            var payload = login.getPayload();
            return next(null, payload);
          });

感谢您的帮助。我似乎无法在文档中找到任何此类信息。谷歌的API似乎很难记录。

1 个答案:

答案 0 :(得分:0)

不幸的是,如上所述,当前ID令牌有效负载并没有说明照片是否是默认照片(可能是我们应该添加的内容)。如果您需要访问令牌来调用Google的REST API(例如people.get)以获取更多用户数据,那么您需要获取OAuth身份验证代码,并将其交换以访问和刷新令牌,如https://developers.google.com/identity/sign-in/ios/offline-access中所述。