Google登录不仅仅适用于网络移动

时间:2018-12-16 02:06:59

标签: javascript google-oauth google-signin google-oauth2

我的网站正在使用下面的代码实现Google登录,并且运行良好。

当我尝试在移动版本中执行所有操作时,所有流程正常,但我没有登录的答案。我猜这是因为移动版本没有显示弹出窗口,而是新标签(Facebook具有相同的行为以及...)

我应该如何使其也能在移动版本中使用?

gapi.load('auth2', function() {});

$(function() {
  $("#btn-google-login").on('click', function() {

    var proccedLogin = function(resp) {
      // my continue code...
    }

    // Retrieve the singleton for the GoogleAuth library and set up the client.
    auth2 = gapi.auth2.init({
      client_id: $('meta[name="google-signin-client_id"]').attr('content'),
      cookiepolicy: 'single_host_origin',
      prompt: 'consent',
      immediate: false
    }, function() {});

    auth2.signIn()
      .then(proccedLogin)
      .catch(function(error) {
        alert(JSON.stringify(error, undefined, 2))
      })

  }) // btn google click
})

Ps .:我收到的错误是'popup_closed_by_user',但是我没有自己关闭标签页

修改

现在,我正在获取“ popup_blocked_by_browser”。我按照下面的链接中所述进行了一些更改,但是它始终返回相同的错误...

detect error: "popup_blocked_by_browser" for google auth2 in javascript

1 个答案:

答案 0 :(得分:1)

尝试一下:<a href="about:blank">1</a> <a href="about:blank" target="iframe">2</a> <a href="about:blank" target="not_iframe">3</a> <iframe name="iframe" src="about:blank" style="display: none;"></iframe> 来源:https://github.com/google/google-api-javascript-client/issues/232