gpt4 book ai didi

javascript - 如何将作用域 API 与 (GSI) Google 身份服务一起使用

转载 作者:行者123 更新时间:2023-12-05 00:26:02 38 4
gpt4 key购买 nike

谷歌最近给我发了一封电子邮件,内容如下:

One or more of your web applications uses the legacy Google Sign-In JavaScript library. Please migrate your project(s) to the new Google Identity Services SDK before March 31, 2023


有问题的项目使用 Google Drive API 和现在的旧身份验证客户端。
迁移页面 ( https://developers.google.com/identity/gsi/web/guides/migration) 上的表格显示:


老的
新的
笔记


JavaScript 库


apis.google.com/js/platform.js
account.google.com/gsi/client
以新换旧。

apis.google.com/js/api.js
account.google.com/gsi/client
以新换旧。


我目前正在使用 gapi在前端执行从 apis.google.com/js/api.js 加载的授权.根据表格,我需要用新库替换它。
我尝试了以下方法来验证和授权,其方式与我过去对 gapi 所做的方式相同:
window.google.accounts.id.initialize({
client_id: GOOGLE_CLIENT_ID,
callback: console.log,
scope: "https://www.googleapis.com/auth/drive.file",
discoveryDocs: ["https://www.googleapis.com/discovery/v1/apis/drive/v3/rest"],
});

window.google.accounts.id.renderButton(ref.current, {
size: "medium",
type: "standard",
});

但是,当我尝试使用 Google 登录按钮进行身份验证时, scope字段不受尊重,并且不要求用户授权请求的范围。它也不会在回调的凭据响应中返回任何形式的访问 token 。
我不确定如何授权使用新库。

最佳答案

在新的 Google 身份服务中,身份验证时刻和授权时刻是分开的。这意味着 GIS 为网站提供了不同的 API 来调用这两个不同的时刻。您不能再将它们组合在一个 API 调用(和 UX 流)中。
在身份验证时刻,用户只需登录或注册您的网站(通过利用 Google 共享的信息)。用户需要做出的唯一决定是他们是否要登录(或注册)。此时无需做出与授权相关的决定。
在身份验证时刻,用户将在所有网站上看到一致的 One Tap 或按钮 UX(因为隐式请求相同的范围)。一致性导致更流畅的用户体验,这可能会进一步导致更多的使用。借助一致且优化的身份验证 UX(跨所有网站),用户将获得更好的联合登录体验。
用户登录后,当你真的想从谷歌数据服务加载一些数据时,你可以调用GIS授权API触发UX流,让最终用户授予权限。那是授权时刻。
目前(2021 年 8 月),仅发布了身份验证 API。如果您的网站只关心身份验证,您现在可以迁移到 GIS。如果您还需要授权API,则需要等待进一步通知。

关于javascript - 如何将作用域 API 与 (GSI) Google 身份服务一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68815693/

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