Gab*_*lle 5 google-api google-oauth google-api-js-client google-picker google-signin
由于此处描述的已知问题 ( https://developers.google.com/identity/sign-in/web/troubleshooting ),我想更新我的应用程序以使用新的 gsi 登录,该登录使用的 cookie 少于以前的版本,因此可能有上述错误的解决方案......
我的问题是,几乎没有关于如何将 google picker 与新 gsi 集成的文档。
我曾经用于gapi
一些与选择器相关的代码,例如加载库gapi.load('picker', () => {})
。迁移文档表示要用apis.google.com/js/api.js
新的 gsi url 替换 ,并且许多其他方法(例如googleAuth.signIn
或 )gapi.client.init
现在将在 2023 年被弃用。但是:
gapi
可用的情况下加载选择器?或者gapi
仍然需要导入但不会包含任何登录相关的方法?GoogleAuth.isSignedIn
仅说明“删除。用户当前在 Google 上的登录状态不可用。用户必须登录 Google 才能获得同意和登录时刻。” 那有什么意思?我需要检查用户是否已登录,以便每次他们想从 gPicker 上传文件时不再显示弹出窗口...access_token
的回调上有 a ,现在我们如何获取 token 呢?reloadAuthResponse
signIn
抱歉这个问题令人困惑,我对一切都很困惑。任何输入都有帮助,谢谢!
小智 3
我通过以下方式遇到了https://developers.google.com/identity/oauth2/web/guides/use-token-model:How to use scoped APIs with (GSI) Google Identity Services
我更改了代码来加载此脚本:https://accounts.google.com/gsi/client,然后修改了我们的“授权”函数(见下文)以使用window.google.accounts.oauth2.initTokenClient
而不是window.gapi.auth2.authorize
获取access_token
.
请注意,回调已从window.gapi.auth2.authorize
函数的第二个参数移至callback
函数第一个参数的属性window.google.accounts.oauth2.initTokenClient
。
调用后tokenClient.requestAccessToken()
(见下文),传递给的回调window.gapi.auth2.authorize
将使用包含access_token
.
const authorize = () =>
- new Promise(res => window.gapi.auth2.authorize({
- client_id: GOOGLE_CLIENT_ID,
- scope: GOOGLE_DRIVE_SCOPE
- }, res));
+ new Promise(res => {
+ const tokenClient = window.google.accounts.oauth2.initTokenClient({
+ client_id: GOOGLE_CLIENT_ID,
+ scope: GOOGLE_DRIVE_SCOPE,
+ callback: res,
+ });
+ tokenClient.requestAccessToken();
+ });
Run Code Online (Sandbox Code Playgroud)
使用的方式access_token
没有改变:
new window.google.picker.PickerBuilder().setOAuthToken(access_token)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
906 次 |
最近记录: |