我正在尝试在我的 Android 应用程序上实现 Google 帐户登录并在我的 Node 服务器中对其进行身份验证。
我关注了这个tutorial在 Android 上成功实现 Google 登录按钮,但我不知道如何在我的后端进行身份验证。
从这里documentation我假设我需要获取并发送 getIdToken()
或 getServerAuthCode()
但我不确定应该发送哪一个,所以投票发送 getServerAuthCode()
.
在我的 Node 服务器部分,我安装了这个 library并使用了这个方法:
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 });
我认为这是正确的方法,但后来我发现了this我意识到 getServerAuthCode()
返回的数据需要用真实的访问 token 交换才能从用户那里获取信息。
我的问题是:
1) 我应该从 Android 向 Node 发送哪些数据? (在 Node 上,我获得了一些基本信息,例如电子邮件和用户名)。
2) 如果我发送的数据正确,我为 Node 使用的库是否正确?如果我没有发送正确的数据,您推荐我使用哪个库来验证 getIdToken()
。
3) 在 Node 上,我应该如何交换来自 getServerAuthCode()
的数据以获得正确的访问和刷新 token ?
欢迎提供有关如何进行身份验证的任何其他信息和示例。
谢谢。
最佳答案
这可能是您正在寻找的解决方案。 https://developers.google.com/identity/sign-in/android/backend-auth
这允许您使用 HTTPS 将 ID 发送回您的服务器。然后在服务器上验证ID token的完整性,并使用token中包含的用户信息建立 session 或创建新账户。
关于android - 如何使用 Node 服务器验证 Android Google 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38209870/