2016-06-30 2 views
0

Я ниже руководство Google для входа в систему с помощью Google и отправки кода доступа к серверу:Google Войти для серверных приложений

Руководство здесь: https://developers.google.com/identity/sign-in/web/server-side-flow#step_6_send_the_authorization_code_to_the_server

У меня есть два очень простых вопросов:

  • Как закрытие в событии click jQuery известно о auth2? Если вы запустите этот код в Chrome, вы получите сообщение об ошибке auth2 не определено. Как я могу исправить эту ошибку?

Run из 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 { ... } 
} 
+0

Не должно быть 'gapi.auth2' в обработчике событий click? Предполагая, что 'gapi' задано в области глобального/окна. – SArnab

+0

Не уверен, я основываю эту информацию у гида. Может быть, взглянуть и бросить некоторые знания? – djthoms

+1

С первого взгляда похоже, что они просто устанавливают 'auth2' в область окна, а затем получают доступ к нему из обработчика кликов. Они действительно должны сделать это более понятным в руководстве. Убедитесь, что вы запустили переменную auth2 в голове и ваш обработчик кликов в конце страницы. Кроме того, убедитесь, что auth2 установлен перед продолжением щелчка. Я предполагаю, что они загружают библиотеку auth2 с помощью async. Вы можете включить только кнопку после загрузки auth. – SArnab

ответ

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({...}); 
    }); 
} 

также в заголовке будет делать трюк. Гид говорит об этом, но пренебрегает тем, что он не будет работать иначе.

Смежные вопросы