gpt4 book ai didi

android - 在 node.js 服务器中验证谷歌授予的 OAuth token 的正确方法是什么?

转载 作者:IT老高 更新时间:2023-10-28 23:10:55 24 4
gpt4 key购买 nike

我正在尝试将 Android 平台的移动应用程序验证为自定义 node.js 服务器 api。我想为此使用 Google OAuth2 token ,而不是自己进行身份验证,因为安装了 Google Play 的 Android 设备使应用程序开发人员可以使用它。我正在使用来自 Google Play 服务库的 GoogleAuthUtil.getToken 调用,记录在 here .我正在尝试遵循此 android developers blogpost 中概述的建议

getToken 方法在我的例子中返回一个 857 字节的长字符串。如果我尝试将此 token 传递给 Google 的 TokenInfo端点,它返回:

{'error': 'invalid_token', 'error_description': 'Invalid Value'}

我在这里做错了什么?在 getToken 调用的“范围”中,我发送:audience:server:client_id:**i_put_my_clientid_here**。我为“已安装的应用程序”生成了一个客户端 ID。使用此客户端 ID,对 getToken 的调用根本不起作用。当我为“服务帐户”生成客户端 ID 时,调用成功,但我得到一个 857 字节的 token ,当如上所述传递到 TokenInfo 端点时失败。

编辑:我还为“Web 应用程序”创建了一个客户端 ID,因为它看起来是调用 getToken 时使用的正确客户端 ID。但是行为是一样的,我得到了一个 857 字节的 token ,在调用 Google 的端点时没有验证。

如何在 Android 上使用 Google Play 服务正确获取有效的身份验证 token ?一旦我有了正确的 token ,什么是正确的 node.js 库来验证它的服务器端?我可以使用 passport-google-oauth ?

最佳答案

嗯,这实际上是评论而不是答案,但我不能在其中添加换行符:

  1. 它必须是 web 端放入 put_my_clientid_here 位置的客户 ID
  2. 如果 GoogleAuthUtil.getToken() 给你一个字符串而不抛出异常,它真的应该是有效的。当你点击 tokeninfo 时,你是否使用了 ...tokeninfo?id_token=<857-byte-value-here>
  3. 如果您是一名 ruby​​ist,请获取 google-id-token gem,看看它是否可以验证您的 857 字节 token 。

关于android - 在 node.js 服务器中验证谷歌授予的 OAuth token 的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16312784/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com