oauth-2.0 Google Oauth弹出取消回调

2sbarzqh  于 2022-10-31  发布在  Go
关注(0)|答案(2)|浏览(279)

当使用Google身份服务(GSI)时,我可以显示一个弹出窗口,要求用户连接他们的Google帐户。这是一个很好的文档,它可以很好地与下面的代码一起工作:

const client = window.google.accounts.oauth2.initCodeClient({
  client_id: 'CLIENT_ID',
  scope: 'SCOPE',
  ux_mode: 'popup',
  callback: async (response) => {
    console.log('Response Google', response);
  },
});
client.requestCode();

但是,如果用户关闭弹出窗口,我希望做些什么。我在文档和在线示例中找不到任何东西。我尝试了intermediate_iframe_close_callbacknative_callback,但在关闭弹出窗口时都没有调用。
所以,这可能吗?我怎么做?
谢谢

gr8qqesn

gr8qqesn1#

我认为回调名称是“error_callback”。您可以在以下位置找到详细信息:Handle Errors

const client = google.accounts.oauth2.initCodeClient({
  client_id: 'YOUR_GOOGLE_CLIENT_ID',
  scope: 'https://www.googleapis.com/auth/calendar.readonly',
  ux_mode: 'popup',
  callback: myCallback,
  error_callback: myErrorCallback  // You can do something when popup window closed
});
0wi1tuuw

0wi1tuuw2#

这似乎不适用于当前版本的GSI。
它确实适用于旧的gapi版本,如果要关闭弹出窗口,您将得到一个错误响应:{error: "popup_closed_by_user"}。如本答案中所述:Google SSO login error: "popup_closed_by_user"
希望添加#google-oauth标记后,Google的某个人能够看到这一点,并希望更新此脚本。

相关问题