如何验证Android Google使用Node服务器登录

Fer*_*ago 5 authentication android google-account node.js google-signin

我正在尝试在我的Android应用上实施Google帐户登录,并在我的节点服务器中对其进行身份验证.

我按照本教程成功实现了Android上的Google登录按钮,但我知道我不知道如何在后端进行身份验证.

从这个文件我假设我需要得到并发送getIdToken()getServerAuthCode()但我不知道我应该发送哪一个,所以投票发送getServerAuthCode().

在我的节点服务器部分,我安装了这个并使用了这个方法:

var google = require('googleapis'); 
var plus = google.plus('v1'); 
var OAuth2 = google.auth.OAuth2; 
var oauth2Client = new OAuth2(CLIENT_ID, CLIENT_SECRET, REDIRECT_URL);

// Retrieve tokens via token exchange explained above or set them:
oauth2Client.setCredentials({   
  access_token: 'ACCESS TOKEN HERE',  
  refresh_token: 'REFRESH TOKEN HERE' 
});

plus.people.get({ 
userId: 'me', 
auth: oauth2Client }, 
function(err,response) {   // handle err and response });
Run Code Online (Sandbox Code Playgroud)

我认为这是正确的方法,但后来我发现了这一点,我意识到返回的数据getServerAuthCode()需要交换真实访问令牌才能从用户那里获取信息.

我的问题是:

1)我应该从Android向Node发送哪些数据?(在Node上我得到一些基本信息,如电子邮件和用户名).

2)如果我发送正确的数据,我用于Node的库是正确的吗?如果我没有发送正确的数据,你建议我验证哪个库getIdToken().

3)在节点上,我应该如何交换数据getServerAuthCode()以获得正确的访问和刷新令牌?

欢迎提供有关如何进行身份验证和示例的任何其他信息.

谢谢.

小智 1

这可能是您正在寻找的解决方案。 https://developers.google.com/identity/sign-in/android/backend-auth

这允许您使用 HTTPS 将 ID 发送回您的服务器。然后,在服务器上验证 ID 令牌的完整性,并使用令牌中包含的用户信息建立会话或创建新帐户。