gapi.auth.authorize with immediate: true 无效

gapi.auth.authorize with immediate: true is not working

我正在尝试进行 Gmail Oauth。

当我使用 immediate:true 调用此函数时,它仍然在授权时显示弹出窗口 window。

请让我知道是否有任何错误,还有任何替代方法。

gapi.auth.authorize({client_id: clientId, scope: scopes, immediate: true}, callbackAuthResult);

这是我的代码:

function signin(getAuthStatus) {

gapi.auth.authorize({
        'client_id': 'myID',
        scope: 'email', immediate: true
    },getAuthStatus);

}

function getAuthStatus() {
        gapi.client.Myendpoint.MyEndpointMethod().execute(function (resp) {
            console.log(resp);
}

首先,我们必须了解oauth过程是如何工作的,

在 Google OAuth 中,

如果 immediate 值为 false,那么浏览器将打开一个弹出窗口,人们必须允许您的应用程序获取他们的详细信息来自 Google.

如果 immediate 值为 true,那么它会被自动授权而无需任何弹出窗口,人们不必允许应用程序。

保持 immediate 值为 false,当您要求用户首次登录您的应用程序时,浏览器将打开弹出窗口和用户将允许您的应用程序获取详细信息。从下次开始,无论您在应用程序中使用 OAuth 进行经过身份验证的调用,都将 immediate 值设置为 true,因为用户已经允许您的应用程序,这样你就可以直接获取用户信息,而无需再一次次询问他的权限。