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

标签 android node.js authentication google-signin google-account

我正在尝试在我的 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/

相关文章:

android - 从源代码自定义 Android MMS/SMS 应用程序?

node.js - 通过 websocket 连接两个 Node 应用程序,通过 nginx ssl 终止代理

c# - 如何在 MVC 5 中设置自定义 ClaimsPrincipal?

android - 更改其他应用程序的通知声音

android - 显示 DialogFragment 时保持沉浸式模式

android - React-Native Webview 无法在 iOS 中正常加载 android 中的 ppt、xls、doc 文件

node.js - Node : how to use literals in external require?

NODE.JS - 如何使用 bcrypt 检查 Laravel 哈希密码?

session - 更新 session 变量是否将用户踢到登录页面?

django - Django base.html 中的动态变量