Google javascript 登录 api:无法离线访问

2024-05-13

我正在尝试为服务器端应用程序实现 Google 登录,如 Google 文档中所示:服务器端应用程序的 Google 登录 https://developers.google.com/identity/sign-in/web/server-side-flow,但同意窗口从不要求离线访问。选择用户后,它会关闭并调用登录处理函数。

结果,当我获得一次性代码并将其发送到服务器时,我无法将其兑换为refresh令牌,仅用于访问令牌和 ID 令牌。

这是我的客户端代码:

在 HTML 文件中:

<script src="https://apis.google.com/js/platform.js?onload=init" async defer></script>

JavaScript 代码:

var auth2;
function init() {
    gapi.load('auth2', function() {
        auth2 = gapi.auth2.init({
            client_id: '<my client id>.apps.googleusercontent.com',
            scope: 'https://www.google.com/m8/feeds https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/drive.appfolder'
        });
    });
    $('#signinButton').click(function() {
        auth2.grantOfflineAccess({'redirect_uri': 'postmessage'}).then(onSignIn);
    });
}

function onSignIn(authResult) {
    if (authResult['code']) {
    // Send the code to the server
    }
}

Google 控制台中的项目包含一个具有相关 javascript 来源且没有授权重定向 URI 的 Web 客户端凭据。

我应该做什么强制同意窗口请求离线访问?


我可以通过添加参数强制提示离线'approval_prompt' : 'force' to auth2.grantOfflineAccess函数调用。

E.g.

auth2.grantOfflineAccess({'redirect_uri' : 'postmessage', 'approval_prompt' : 'force'}).then(onSignIn);

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google javascript 登录 api:无法离线访问 的相关文章

随机推荐