Google登录API无法在Mozilla Firefox上运行

cli*_*tgh 2 javascript firefox google-signin

我目前正在处理一个网络应用,要求用户使用他们的Google帐户登录才能访问核心功能.使用Google Chrome时,一切都按照预期的方式运行:用户点击"登录",弹出窗口以Google登录形式打开,用户登录,然后他将转移到主页面.(好)

然而

使用Mozilla Firefox 38.0.1时,无法以任何方式使用Web应用程序,因为当用户单击"登录"时,它什么都不做.字面上没什么,甚至在控制台上都没有错误.

这是登录按钮:

//head
<meta name="google-signin-client_id" content="{CLIENT ID}.apps.googleusercontent.com">

//body
<button class="g-signin2 login-button" data-onsuccess="onSignIn"></button>
Run Code Online (Sandbox Code Playgroud)

Firefox和Google Sign In API目前是否存在已知问题?

cli*_*tgh 6

好的,找到了解决方案:我跟着这个.基本上,我没有使用Google SignIn的简单集成,我只是创建了一个自定义处理程序和监听器.我保留了原始按钮,因为它是必需的,只是添加了这个javascript:

HTML

<script src="https://apis.google.com/js/plus.js?onload=appStart"></script>
Run Code Online (Sandbox Code Playgroud)

JS

//googleSignIn.js

var auth2; // The Sign-In object.
var googleUser; // The current user.
/**
 * Calls startAuth after Sign in V2 finishes setting up.
 */
var appStart = function() {
  console.log('appStart()')
  gapi.load('auth2', initSigninV2);
};
/**
 * Initializes Signin v2 and sets up listeners.
 */
var initSigninV2 = function() {
  auth2 = gapi.auth2.getAuthInstance({
      client_id: '{CLIENT ID}.apps.googleusercontent.com',
      scope: 'profile'
  });

  // Listen for sign-in state changes.
  auth2.isSignedIn.listen(signinChanged);
  // Listen for changes to current user.
  auth2.currentUser.listen(userChanged);

  // Sign in the user if they are currently signed in.
  if (auth2.isSignedIn.get() == true) {
      auth2.signIn();
  }
};
/**
 * Listener method for sign-out live value.
 *
 * @param {boolean} val the updated signed out state.
 */
var signinChanged = function (val) {
    console.log('Signin state changed to ', val);
};
/**
 * Listener method for when the user changes.
 *
 * @param {GoogleUser} user the updated user.
 */
var userChanged = function (user) {
  console.log('User now: ', user);
  googleUser = user;
};

$('.login-button').on('click', function() {
    console.log('signing in')

    auth2.signIn().then(function(user) {
        //callback to handle sign in
        onSignIn(user);
    });
})
Run Code Online (Sandbox Code Playgroud)

我不确定是什么导致Google登录的问题无法在Mozilla上运行.如果有人知道这是一个已知问题,请在评论中告诉我.

底线: 轻松整合 Google Sign In对Mozilla无效.不得不使用听众进行整合.