gpt4 book ai didi

javascript - 从 id_token 获取 Google OAuth 访问 token

转载 作者:行者123 更新时间:2023-12-04 15:51:17 45 4
gpt4 key购买 nike

我正在使用带有 redirect_uri 选项的 Google 身份验证(以避免弹出窗口)。当用户登录 Chrome 时,我可以获得访问 token ,但在 Safari(例如)中,我不知道如何获取访问 token 。重定向查询字符串包含一个 id_token,我可以使用此端点成功验证它:

https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=XYZ123

这给了我一些关于用户的信息,但我真正想要的是一个访问 token ,因为我的后端 API 需要它。

我可以从 id_token 获取访问 token 吗?如果是这样,如何。我找不到任何例子。

澄清:我不是在尝试验证我的应用程序,而是从通过 Google 在前端登录进行身份验证的用户那里获取 id_token。

最佳答案

仅验证用户

如果您不使用 Google API,而只是使用 token 来验证用户,您应该只验证 id_token并且不使用访问 token 。 id_token s 是一个 OpenID Connect 概念,用于通知客户端(您的应用程序)有关当前登录用户的一些基本信息。

验证 id_token你可以use the documentation描述尽可能多或this related question在 Stackoverflow 上。

代表您的用户使用 Google API

但是,如果您想以用户的名义使用 Google API,则需要 access_token作为id_token s 通常不用于与后端的身份验证。要获取访问 token ,用户需要授权您的应用才能代表他们访问 Google API。如果您使用 gapi库那么调用 Google API 的过程可能大部分是隐藏的,但它应该在某个地方有一个访问 token 。

这份 Google 文档描述了幕后发生的事情。

https://developers.google.com/identity/protocols/OAuth2

如果您想在后端代表您的用户访问 Google API,您可能必须遵循与前端使用的流程不同的流程。授权请求中的响应类型定义了使用哪个进程(这就是我询问使用哪种响应类型的原因)。但是 gapi npm 包背后的 Javascript 库似乎支持它,尽管您使用它的方式可能不容易访问它。

https://developers.google.com/api-client-library/javascript/reference/referencedocs#googleusergetauthresponseincludeauthorizationdata

还要检查离线选项,也许这就是你要找的?如果这没有帮助,您仍然可以查看我之前引用的 Oauth2 文档页面,以获取指向其他选项/其他语言的链接以获取身份验证 token 。

关于javascript - 从 id_token 获取 Google OAuth 访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53791120/

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