【问题标题】:How can authorization be done on a local web app using Google?如何使用 Google 在本地 Web 应用程序上进行授权?
【发布时间】:2019-03-08 16:48:50
【问题描述】:

我正在开发一个(到目前为止)需要身份验证的公司内部网站(即允许有限的一组用户使用它)。我不想强迫用户只为这项服务使用新的用户名/密码对。该公司已经将公司品牌的 Google Mail 用于电子邮件,因此每个用户都已经拥有了一个 Google 帐户:我的“狡猾的计划”是让 Google 对用户进行身份验证。

我发现this 很好的问答,所以我知道(或至少有一个想法)如何在服务器端验证网络会话是否已通过 Google 的身份验证。我不知道的是:如何在客户端获取accessToken?如何检测用户是否已经登录谷歌,如果没有,如何向用户展示谷歌登录表单?

我找到了Using OAuth 2.0 to Access Google APIs 文档,但我不太明白这句话:“授权序列从您的应用程序将浏览器重定向到 Google URL 时开始;该 URL 包含指示类型的查询参数正在请求访问权限。”。这个网址是什么?

不幸的是,我对 Web 开发和 JavaScript 还很陌生。

【问题讨论】:

  • 所有这句话的意思是,您只需要一个登录按钮,将凭据传递给 Google 进行授权,或重定向到 Google,以便用户可以输入他们的凭据(更安全的方式)

标签: javascript oauth-2.0 google-oauth


【解决方案1】:

“当您的应用程序将浏览器重定向到 Google URL 时,授权序列开始;该 URL 包含指示所请求访问类型的查询参数。”。

您的应用程序需要打开一个网页,该网页将向用户显示同意屏幕。此页面是在 Google 的身份服务器上打开的,而不是您自己的。你可能以前见过这个。

网址是使用您在 Google 开发者控制台中为您的项目设置的客户端 ID 和重定向 URI 构建的。

https://accounts.google.com/o/oauth2/auth?client_id={clientid}.apps.googleusercontent.com&redirect_uri=urn:ietf:wg:oauth:2.0:oob&scope=https://www.googleapis.com/auth/analytics.readonly&response_type=code

你可能会觉得这篇博文很有趣Google 3 Legged OAuth2 Flow

【讨论】:

  • 我创建了一个 OAuth 2.0 客户端 ID 并在浏览器中尝试了该 URL,但收到此错误:“请求中的重定向 URI,urn:ietf:wg:oauth:2.0:oob,只能是由本地应用程序的客户端 ID 使用。不允许用于 WEB 客户端类型。我不确定我做错了什么。客户端 ID 的类型是“Web 应用程序”。
  • 我需要在redirect_uri参数中使用网络服务器的实际URL,这样可以解决问题。谢谢!
猜你喜欢
  • 1970-01-01
  • 2020-03-04
  • 1970-01-01
  • 2012-07-02
  • 2022-09-08
  • 1970-01-01
  • 2012-09-22
  • 2020-02-05
  • 1970-01-01
相关资源
最近更新 更多