AWS Пользовательский интерфейс, размещенный на Cognito, и усиленная аутентификация с кодом авторизации OAuth - PullRequest
1 голос
/ 28 февраля 2020

У меня есть Vue. js веб-приложение, в которое я пытаюсь добавить простую аутентификацию для использования AWS Cognito и Amplify Auth. У меня настроен пул пользователей с включенным «Предоставлением кода авторизации» для потока OAuth. У меня также есть URL перенаправления, установленный как https://example.auth.us-east-2.amazoncognito.com/login?response_type=code&client_id=XXXXXXXX&redirect_uri=https://example.com/auth/verify для размещенного пользовательского интерфейса.

Это то, что находится на странице, на которую перенаправляется размещенный пользовательский интерфейс:

import { Auth } from "aws-amplify";

export default {
    async created() {
        try {
            await Auth.currentSession();
        } catch {
            console.error("Not authorized");
        }
    }
}

Когда я вхожу в первый раз через размещенный пользовательский интерфейс и перенаправлен, я получаю сообщение об ошибке и не распознается Усилить как аутентифицируемый. Однако, если я вхожу во второй раз, в консоли нет ошибки, и у меня есть сеанс с проверкой подлинности.

Я знаю, что при предоставлении кода авторизации токены не помещаются в URL, но я вижу их в локальном хранилище даже при первом входе в систему. Я пытался переключиться на использование потока OAuth "token", но Документы Amplify говорят, что токен refre sh не предоставляется таким образом, и я бы хотел, чтобы сеансы не ограничивались 1 часом. Любое руководство здесь?

1 Ответ

1 голос
/ 23 марта 2020

Для тех, кто сталкивается с той же проблемой, это, кажется, известная проблема.

Обходной путь - подписаться на действия Hub и обрабатывать его там как

Hub.listen("auth", ({ payload: { event, data } }) => {
  switch (event) {
  case "signIn":
    // signin actions
    Auth.currentSession()
      .then(user => console.log(user)) // redirect to default page
      .error(err => console.log(err))
  case "signOut":
    // signout actions, redirect to '/' etc
  case "customOAuthState":
    // other changes
  }
}

см. https://github.com/aws-amplify/amplify-js/issues/5133#issuecomment -600759135

...