Google登录服务器端应用

时间:2016-06-30 16:53:45

标签: javascript google-signin

我正在关注Google指南,以便使用Google登录并将访问代码发送到服务器:

指南:https://developers.google.com/identity/sign-in/web/server-side-flow#step_6_send_the_authorization_code_to_the_server

我有两个非常简单的问题:

  • jQuery点击事件中的闭包如何知道auth2?如果您在Chrome中运行此代码,则会收到错误消息,指出auth2未定义。我该如何解决这个错误?

从onload运行:

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

jQuery点击处理程序

(function($) {
    $('#signinButton').click(function() {
        auth2.grantOfflineAccess({'redirect_uri': 'postmessage'}).then(signInCallback);
    });
})(jQuery);
  • signInCallback如何传递信息?这是回调过程的一部分吗?

代码:

function signInCallback(authResult) {
    if(authResult['code']) {
        $.ajax({...});
    } else { ... }
}

1 个答案:

答案 0 :(得分:0)

将客户端api加载到HTML文件的顶部:

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

然后初始化:

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

也会在标题中做到这一点。该指南说明了这一点,但忽略了声明它确实无法正常工作。