Коли я називаю gapi.auth.signIn, це викликається двічі: перед відкриттям спливаючого вікна входу та після натискання кнопки входу користувача. Але в обох випадках authResponse
Параметр не змінюється.
Ось зразок коду:
gapi.auth.signIn({
scope: "https://www.googleapis.com/auth/plus.login",
callback: function(authResponse) {
console.log(authResponse);
}
)};
І це так authResponse
об'єкт виглядає в обох випадках
{
client_id: /* my client id */
cookie_policy: undefined
error: "immediate_failed"
error_subtype: "access_denied"
expires_at: "1422353634"
expires_in: "86400"
g_user_cookie_policy: undefined
issued_at: "1422267234"
response_type: "token"
scope: "https://www.googleapis.com/auth/plus.login"
state: ""
status:
{
google_logged_in: false
method: null
signed_in: false
}
}
EDIT: Перш ніж увійти, я намагаюся перевірити, чи є користувач вже авторизований у google.
gapi.auth.authorize({
client_id: _googleClientId,
immediate: true,
scope: "https://www.googleapis.com/auth/plus.login"
}, function(response) {
if (response.status.signed_in) {
connectGoogleSuccess(response);
} else {
gapi.auth.signIn({
scope: "https://www.googleapis.com/auth/plus.login",
callback: function(authResponse) {
console.log(authResponse);
}
)};
}
}
);
Як правильно змінити об'єкт authResponse після того, як користувач натиснув кнопку "Вхід"?
Будь-яка допомога оцінена)
Відповіді:
1 для відповіді № 1Окей, ось обхідний шлях, який я отримав.
Спочатку я називаю
gapi.auth.authorize
метод з використанням параметра"immediate"=true
, так що спливаюче вікно не відображатиметься.gapi.auth.authorize({ client_id: _googleClientId, immediate: true, scope: "https://www.googleapis.com/auth/plus.login" }, function(response) { if (response.status.signed_in) { connectGoogleSuccess(response); } else { connectGoogle(); } });
Потім я знову подзвоню
gapi.auth.authorize
метод з"immediate"=true
, тому користувач може вводити свої облікові дані.connectGoogle() { gapi.auth.authorize({ client_id: _googleClientId, immediate: false, scope: "https://www.googleapis.com/auth/plus.login" }, function(response) { if (response.status.signed_in) { connectGoogleSuccess(response); } }); };
Сподіваюся, що це допоможе комусь!