google sign_in:如何在javascript api中使用redirect_uri

时间:2018-02-09 14:27:03

标签: javascript google-api firebase-authentication url-redirection google-signin

我试图在我的网站中集成谷歌登录,并且我使用 firebase 进行身份验证,之后我授权用户访问他们的谷歌驱动器。

并且在访问了他们的Google drives后,我希望该页面重定向到另一个页面。(localhost:8080/afterlogin),它将显示在哪里" 欢迎&#34 ;

但是用户没有到达所需的页面,我在开发者控制台中添加了确切的redierct_uri但没有帮助。

这是我的初始化auth对象的代码。

gapi.load('auth2', function () {
        // Retrieve the singleton for the GoogleAuth library and set up the client.
        auth2 = gapi.auth2.init({
            client_id: 'MYID.apps.googleusercontent.com',
            cookiepolicy: 'single_host_origin',
            redirect_uri: 'http://localhost:8080/afterlogin'

            // Request scopes in addition to 'profile' and 'email'
            //scope: 'additional_scope'
        });

我使用javascript并且我在javascript api不使用 redirect_uris 的文档中阅读。

但是在文档here

声明我们可以使用gapi.auth2.ClientConfig代替gapi.auth2.init添加redirect_uris。

但是,使用gapi.auth2.ClientConfig代替gapi.auth2.init会给我和错误。所以我在后一个中添加了redirect_uri,如上面的代码所示。也许这就是为什么它不起作用?

或者我在使用gapi.auth2.ClientConfig

时做错了什么

任何猜测?

1 个答案:

答案 0 :(得分:2)

文档说您需要使用 ux_mode ='重定向' 覆盖默认的 redirect_uri 。有时谷歌的文档要比它需要的复杂得多。我认为你正在处理你发布的代码所产生的承诺。我会试试这个:

     gapi.load('auth2', function () {
        auth2 = gapi.auth2.init({
            client_id: 'MYID.apps.googleusercontent.com',
            cookiepolicy: 'single_host_origin',
            ux_mode: 'redirect',
            redirect_uri: 'http://localhost:8080/afterlogin'

            // Request scopes in addition to 'profile' and 'email'
            //scope: 'additional_scope'
        });

        auth2.signIn().then(function() {
          var profile = auth2.currentUser.get().getBasicProfile();
          console.log('Full Name: ' + profile.getName());
        })

来自doc s, gapi.auth2.ClientConfig

enter image description here

编辑 - 我使用=符号修复了问题