Aws-усиление с auth не работает? - PullRequest
0 голосов
/ 05 февраля 2019

Я пытаюсь создать приложение реакции, которое будет использовать размещенный пользовательский интерфейс aws для аутентификации.Я пытаюсь использовать aws-усиление для достижения этой цели, и пока мне не везет.

Здесь в документации указано, что конфигурация аутентификации должна выглядеть следующим образом.

const oauth = {
  domain : 'your-domain-prefix.auth.us-east-1.amazoncognito.com', 
  scope : ['phone', 'email', 'profile', 'openid','aws.cognito.signin.user.admin'], 
  redirectSignIn : 'http://www.example.com/signin/', 
  redirectSignOut : 'http://www.example.com/signout/',
  responseType: 'code',
}

Но когда я использую эту настройку конфигурации, я получаю следующую ошибку.

Параметры: идентификатор клиента приложения, веб-домен приложения, URL-адрес перенаправления при входе в систему и URL-адрес перенаправления при выходе из системы.

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

if (data == null || !ClientId || !AppWebDomain || !RedirectUriSignIn || !RedirectUriSignOut) {
      throw new Error(this.getCognitoConstants().PARAMETERERROR);
    }

Похоже, конфиг должен выглядеть примерно так:

const auth = {
  AppWebDomain: "aaaaa",
  TokenScopesArray: ["phone", "email", "profile", "openid", "aws.cognito.signin.user.admin"],
  RedirectUriSignIn: "http://localhost:3000",
  RedirectUriSignOut: "http://localhost:3000",
  responseType: "token",
  ClientId: "aaa",
  UserPoolId: "aaa",
};

Но при этом и при попытке отправить пользователя на размещенный пользовательский интерфейс, как говорят документы, здесь Я получаю эту ошибку.

Uncaught TypeError: Не удается прочитатьсвойство 'домен' из неопределенного

Еще раз я посмотрел на источник и обнаружил это.

var domain = config.domain,

Что делает его похожим на ожидание конфигурации, которая не работает.

На данный момент я действительно заблудился и могу использовать любую помощь.

1 Ответ

0 голосов
/ 10 февраля 2019

При просмотре кода Auth.ts выясняется, что необходимо добавить поля userPoolId и userPoolWebClientId в дополнение к oauth.Вот как я заставил это работать:

const oauth = {
  domain: 'XXXXXX.auth.us-west-2.amazoncognito.com',
  scope: ['phone', 'email', 'profile', 'openid', 'aws.cognito.signin.user.admin'],
  redirectSignIn: 'http://localhost:3000/',
  redirectSignOut: 'http://localhost:3000/',
  responseType: 'code'
};
Auth.configure({
  oauth: oauth,
  region: 'us-west-2',
  userPoolId: 'us-west-2_XXXXXXXXX',
  userPoolWebClientId: 'XXXXXXXXXXXXXXXXXXXXXXXXXX'
});
...