Google身份验证JS API重定向到错误的URL

时间:2018-10-30 13:05:31

标签: javascript google-api google-calendar-api google-oauth google-api-client

我在下面使用此代码已有两年了,直到一个月前,它都可以正常工作。

MY_CUSTOM_URL 在Google授权的重定向URI中声明并注册。

        function initClient() {   
                    gapi.client.init({
                        apiKey: APKEY,
                        clientId: CLIENTID,
                        discoveryDocs: ["https://www.googleapis.com/discovery/v1/apis/calendar/v3/rest"],
                        scope: "https://www.googleapis.com/auth/calendar",
                        redirect_uri: MY_CUSTOM_URL,
                        ux_mode: 'redirect',                
                    }).then(function () {                    
gapi.auth2.getAuthInstance().isSignedIn.listen(updateSigninStatus);                        
updateSigninStatus(gapi.auth2.getAuthInstance().isSignedIn.get());

                    });
                }

当我尝试调用gapi.auth2.getAuthInstance().signIn();时,即使我使用的是本地主机(也在Google上注册),它也只会忽略 MY_CUSTOM_URL 并重定向到默认的网站根域。 ,并且不进行身份验证。

如果我评论 ux_mode ,它会打开一个弹出窗口并正常工作,但是我不能为此目的使用弹出窗口。

谢谢

1 个答案:

答案 0 :(得分:1)

来自Doc

  

必需的。确定API服务器在重定向后将用户重定向到的位置   用户完成授权流程。 该值必须完全匹配   API中为您的项目列出的redirect_uri值之一   控制台。请注意,http或https方案,大小写和斜杠   ('/')必须全部匹配。

检查API Console中的redirect_uri,使其与您的 MY_CUSTOM_URL

在这里可以找到它

选择api =>凭据=>选择OAuth 2.0客户端ID =>授权的重定向URI [输入字段]