Angular / Typescript API входа в Google с ux_mode: перенаправление

#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?