【发布时间】:2018-11-05 06:20:54
【问题描述】:
我有一个 Web 应用程序,它当前使用 OAuth2 来验证使用其 Google 帐户的用户。流程非常标准:用户登录 Google,Web 应用获取回调,检索用户身份并将其存储在会话中。
现在我需要创建一个随附的 Chrome 扩展程序。此扩展需要访问下面的 Web 应用程序,因此需要针对此应用程序进行身份验证。我使用the official documentation 配置了我的扩展,但在实验过程中,我意识到这不是我需要的。由于它使用 OAuth2 隐式流,它不会返回可以在服务器端验证的令牌。此流程仅适用于在客户端使用 Google API,这不是我的用例。本文档(以及我在 Web 上找到的几乎所有其他内容)侧重于两种可能的情况:
- 我们希望在扩展端访问 Google API (
chrome.identity.getAuthToken())。 - 我们希望使用替代的 OAuth2 服务 (
chrome.identity.launchWebAuthFlow()) 进行身份验证。
但是,就我而言,我想使用 Google 帐户对用户进行身份验证,但在我的 Web 应用程序的服务器端处理令牌。我可以在此处使用选项 2,但创建自己的“非 Google 身份验证服务”只是对 Google 身份验证服务的包装,只是为了能够在服务器端进行身份验证,这对我来说“感觉不对” .
选项 2 真的是唯一的方法吗,还是有更简单的方法?
我还看到有人推荐使用tokeninfo 端点来验证令牌,但我发现很难确保这确实是一种“官方”且安全的方式。
【问题讨论】:
标签: google-chrome-extension oauth-2.0 google-oauth