警告:这些数据是根据 Google 用户数据政策提供的。请查看并遵守该政策。否则,可能会导致项目或帐号被暂停。

概述

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

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 令牌凭据以进行用户身份验证。
  • 为了提高用户的安全性和隐私性,为授权发布的每个用户凭据遵循最小权限原则,仅包含访问令牌和管理它所需的信息。