Google 最近向我发送了一封电子邮件,其中包含以下内容:
您的一个或多个 Web 应用程序使用旧版 Google 登录 JavaScript 库。请在 2023 年 3 月 31 日之前将您的项目迁移到新的 Google Identity Services SDK
该项目使用 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",
});
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用 Google 登录按钮进行身份验证时,该scope字段不受尊重,并且不会要求用户授权所请求的范围。它也不会在回调的凭据响应中返回任何形式的访问令牌。
我不知道如何授权使用新库。
javascript google-api google-api-client google-oauth google-identity