#angular #google-api
#angular #google-api
Вопрос:
Проблемы, которые у меня возникают, заключаются в том, что когда я использую метод входа в Google с помощью всплывающего окна, разрешение завершено, и я получаю пользователя из Google api, но когда я использую ux_mode: параметр ‘перенаправление’ для метода входа после входа, я не могу разрешить пользователя. Я пытался подключиться по https, но все еще не работает, также я зарегистрировал URI перенаправления в консоли Google. Вот код, который я использую.
initClient() {
return new Promise((resolve, reject) => {
gapi.load('client:auth2', () => {
gapi.client
.init({
clientId: 'some client id',
discoveryDocs: 'discovery',
scope: 'some scope',
})
.then(
() => {
gapi.client.setApiKey('key');
resolve();
}
);
});
});
}
login() {
this.initClient().then(() => {
gapi.auth2
.getAuthInstance()
.signIn({
ux_mode: 'redirect' //with redirect mode doesn't resolve user
})
.then(
(user) => {
user.getBasicProfile(),
user.getAuthResponse()
// put user on backend
},
Ответ №1:
Я обнаружил, что перенаправление Google не возвращает promise. Он возвращает URL-адрес с информацией о входе в систему. Я решил это, обратившись к нему с помощью окна with.Расположение.имеет и получил информацию из него.
const hash = window.location.hash ? window.location.hash.split('#') : [];
Комментарии:
1. У меня такая же проблема. За исключением того, что мой URL-адрес не имеет access_token, только id_token. Есть ли у вашего URL-адреса access_token?