gapi.auth.authorize 立即生效:true 不起作用

Ama*_* C. 1 javascript oauth-2.0 google-cloud-endpoints google-oauth google-api-js-client

我正在尝试使用 Gmail Oauth。

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

请让我知道是否存在任何错误,以及任何替代方法。

gapi.auth.authorize({client_id: clientId, scope: scopes, immediate: true}, callbackAuthResult);
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

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);
}
Run Code Online (Sandbox Code Playgroud)

Ama*_* C. 5

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

在 Google OAuth 中,

如果即时值为false,则浏览器将打开一个弹出窗口,人们必须允许您的应用程序从 Google 获取他们的详细信息。

如果即时值为true,则它将自动获得授权而不会出现任何弹出窗口,人们不必允许该应用程序。

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