Заголовки аутентификации не установлены с использованием angular -token - PullRequest
0 голосов
/ 09 июля 2020

Я только начал с приложения angular, используя angular -token и серверную часть rails с devise-token-auth , у меня есть следующий "on- submit "в компоненте входа:

onSubmit() {
    this.output = null;
    this.tokenService.signIn(this.signInData).subscribe(
        res => {
            console.log(res)
            this.output = res;
            this.signInForm.resetForm();
            this.router.navigate(['/products']);
        }, error => {
            this.output = error;
            this.signInForm.resetForm();
        }
    );
}

При проверке с помощью DevTools Chrome вход выполнен успешно, а серверная часть возвращает правильные заголовки учетных данных (uid, access-token, client), который я тестировал с почтальоном. Проблема в том, что при загрузке целевой страницы "продукты" вызов httpClient для заполнения этой новой страницы (я помещаю вызов в преобразователь, чтобы ничего не отображать до завершения вызова "продукты") не включает никаких заголовков аутентификации, поэтому конечно, я получаю 401 неавторизованную ошибку, поэтому похоже, что angular -token неправильно обновляет заголовки в соответствии с теми, которые я получил с помощью метода .signIn.

  • Как мне убедитесь, что заголовки отправлены правильно?
  • Где я могу проверить, действительно ли они прибывают в подписанный "res"
    • Как видно, я console.locked это не вижу любые заголовки в этой переменной, хотя я вижу их на вкладке "сеть" devTools.

1 Ответ

1 голос
/ 10 июля 2020

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

В моем конкретном случае мне просто нужно было убедиться, что я выставил заголовки с помощью инициализатора CORS, который ищет вот так:

# config/initializers/cors.rb

 Rails.application.config.middleware.insert_before 0, Rack::Cors do
   allow do
    origins '*'
    resource '*', 
        headers: :any,
        expose: ['access-token', 'expiry', 'token-type', 'uid', 'client'],
        methods: [:get, :post, :put, :patch, :delete, :options]
  end
end

Мне не хватало строки «выставить»:

expose: ['access-token', 'expiry', 'token-type', 'uid', 'client'],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...