Угловой getAccessToken для использования в заголовке, 401 выпуск? - PullRequest
0 голосов
/ 04 мая 2018

Я делаю спа в Angular5 и хочу пройти аутентификацию в активном каталоге Azure (oidc), а затем иметь возможность отправить запрос post / get, используя accessToken в качестве заголовка, но не могу заставить его работать.

Теперь мне нужно понять, является ли этот accesstoken неправильным и нужно ли что-то еще включать в заголовок?

Я получаю маркер доступа после того, как был перенаправлен на страницу входа в Microsoft, которая перенаправляет меня обратно на мой локальный хост (мой app.component.ts ngOnInit ниже), на котором я регистрируюсь и сохраняю маркер доступа с помощью кода ниже.

async ngOnInit() {
 this.ConfigureAuth();
  this.oauthService.tryLogin({});

  if (!this.oauthService.getAccessToken()) {
    await this.oauthService.initImplicitFlow();
  }
  console.log(this.oauthService.getAccessToken());

   this.tokenJ =  this.oauthService.getAccessToken().toString();
  console.log('getAccessToken ' + this.tokenJ);

  console.log('tid till expiration ' + this.oauthService.getAccessTokenExpiration());

  console.log(this.oauthService.authorizationHeader());



}

Я 3 раза регистрирую accesstoken на консоли, заголовок authorization совпадает с getAccessToken. Взятие доступа выглядит примерно так: "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiI ......"

Теперь, когда я хочу получить доступ к API в Azure, для которого я получил accessToken, отправив идентификатор клиента и т. Д. В ConfigureAuth (), я использую запрос get и прикрепляю в заголовке accesstoken, но возвращаю ответ 401 без разрешения.

Может кто-нибудь объяснить, есть ли первый accessToken только для того, чтобы получить другой accessToken, которому разрешено вызывать API? Если да, то как мне получить правильный токен для отправки в качестве заголовка в моем api-запросе?

Пожалуйста, помогите мне заполнить пробелы, попросив разъяснений, если я не был достаточно конкретен.

Спасибо

1 Ответ

0 голосов
/ 11 мая 2018

Я получал взломанный ключ доступа JWT со страницы входа в систему. Этот токен JWT, как я уже сделал, должен быть отправлен в заголовке.

Проблема заключалась в том, что серверная часть не проверяла токен, поэтому запрос не прошел. Другими словами, интерфейс уже работал, и проблема заключалась в проверке JWT от серверной части.

"Когда пользователь делает вызовы API для приложения, он передает JWT вместе с вызовом API. В этой настройке сервер приложений будет настроен для проверки того, что входящий JWT создан сервером аутентификации (проверка процесс будет объяснен более подробно позже.) Таким образом, когда пользователь выполняет вызовы API с помощью подключенного JWT, приложение может использовать JWT для проверки того, что вызов API поступил от аутентифицированного пользователя ». источник

...