Как использовать поток OAuth 2.0 в Google One tap Войти? - PullRequest
1 голос
/ 10 апреля 2020

Я знаю, что могу использовать токен доступа, полученный в ответе, для аутентификации пользователей. Но я хочу, чтобы он был более безопасным, поэтому я хочу, чтобы код, который мы получили в oAuth 2.0. Есть ли способ получить код в фоновом режиме для аутентификации пользователя одним нажатием входа?

Ответ кода авторизации, который мы получаем от сервера, выглядит следующим образом в URL:

https://oauth2.example.com/auth?code=4/P7q7W91a-oMsCeLvIaQm6bTrgtp7

componentDidMount() {
    this.registerNewUser();
  }


retrievePromise() {
    window.googleyolo.retrieve({
      supportedAuthMethods: [
        'https://accounts.google.com',
      ],
      supportedIdTokenProviders: [
        {
          uri: 'https://accounts.google.com',
          // Replace with your client Id
          clientId: 'XXX...XXX.apps.googleusercontent.com',
        },
      ],
    });
  }

  // eslint-disable-next-line class-methods-use-this
  registerNewUser() {
    window.googleyolo.hint({
      supportedAuthMethods: [
        'https://accounts.google.com',
      ],
      supportedIdTokenProviders: [{
        uri: 'https://accounts.google.com',
        // Replace with your client Id
        clientId: 'XXX...XXX.apps.googleusercontent.com',
      }],
      context: 'signUp',
    }).then((credential) => {
      console.log(credential);
      this.props.doGoogleLogin('login');
      this.props.decideWhichSocialLogin(this.props.location);
      /* hit backend api and API TOKEN here */
      /* Also save basic details that we get here */
    }, (error) => {
      console.log('Error occurred: ', error.type);
    });
  }

...