Warning: This data is provided under the Google User Data Policy. Please review and comply with the policy. Failure to do so might result in project or account suspension.

概述

Web 应用程序必须获取访问令牌才能安全地调用 Google API。

Google 身份服务 JavaScript 库支持用户登录身份验证和授权以获取与 Google API 一起使用的访问令牌。该库仅用于浏览器。

身份验证确定某人是谁,通常称为用户注册或登录。授权是授予或拒绝访问数据或资源的过程。它包括获取和管理用户同意、限制与范围共享的数据或资源的数量,以及检索访问令牌以与 Google API 一起使用。

这些指南涵盖授权和数据共享主题。

用户授权的工作原理详细描述了用户授权的各个步骤,并包括用户对话示例。

如果您正在寻求有关身份验证以及如何实现用户注册和登录的帮助,请参阅使用 Google 登录

此库不适用于 Node.js 等服务器端 JavaScript 框架,而是使用 Google 的Node.js客户端库。

发生了什么变化

对于用户而言,Google 身份服务库提供了比早期 JavaScript 库更多的可用性改进,包括:

  • 用户登录身份验证和获取访问令牌以调用 Google API 的授权现在有两个独立且不同的用户流程;一个用于登录,另一个用于授权期间的同意,使用单独的用户流程来清楚地区分您是谁,以及应用程序可以做什么。
  • 用户同意期间改进了数据共享的可见性和精细控制。
  • 基于浏览器的弹出对话框可减少摩擦,并且不需要用户离开您的网站即可:
    • 从 Google 获取访问令牌,或
    • 将授权码发送到您的后端平台。

对于开发人员,我们的重点是降低复杂性、提高安全性,并使您的集成尽可能快速和简单。其中一些变化是:

  • 用于登录的用户身份验证和用于获取访问令牌以调用 Google API 的授权是两组独立且不同的 JavaScript 对象和方法。这降低了实现身份验证或授权所需的复杂性和详细信息量。
  • 一个 JavaScript 库现在同时支持:
    • OAuth 2.0 隐式流,用于获取访问令牌以在浏览器中使用
    • OAuth 2.0 授权代码流,也称为离线访问,并开始将授权代码安全地传送到您的后端平台,在那里可以交换访问令牌和刷新令牌。以前,这些流程只能通过使用多个库和直接调用 OAuth 2.0 端点来获得。一个库可以减少您的集成时间和工作量,而不是包含和学习多个库和 OAuth 2.0 概念,您可以专注于一个统一的界面。
  • 为了简单和可读性,通过 getter 样式函数的间接性已被删除。
  • 在处理授权响应时,您选择是否使用Promise来完成请求,而不是为您做出决定。
  • 适用于 JavaScript 的 Google API 客户端库已通过以下更改进行了更新:
    • gapi.auth2模块和关联的对象和方法不再在幕后自动为您加载,而是被更明确的 Google 身份服务库对象和方法所取代。
    • 已删除过期访问令牌的自动刷新,以提高用户安全性和意识。访问令牌过期后,您的应用必须处理 Google API 错误响应、请求并获取新的有效访问令牌。
    • 为了支持身份验证和授权时刻的明确分离,不再支持同时将用户登录到您的应用程序和他们的 Google 帐户,同时还发布访问令牌。以前,请求访问令牌还会将用户登录到他们的 Google 帐户并返回 JWT ID 令牌凭据以进行用户身份验证。
  • 为了提高用户的安全性和隐私性,为授权发布的每个用户凭据遵循最小权限原则,仅包含访问令牌和管理它所需的信息。