Как применить токен jwt к сгенерированным JS-файлам Angular 2?

Приложение Angular2 Typescript генерирует исходные файлы.js.

Во время отладки я заметил, что заголовок авторизации не определен.

я имею jwt определен токен для пользовательских сервисов.

Как я могу применить то же самое jwt маркер для сгенерированных исходных файлов Angular2.js?

2 ответа

Это не относится к генерируемым js-файлам. Самое простое, быстрое и удобное решение - использовать модуль npm angular2-jwt,

  • Установите модульnpm install angular2-jwt,
  • Настройте ваш app.module.ts следующим образом:

    import { AUTH_PROVIDERS } from 'angular2-jwt';
    @NgModule({
      ...
    
      providers: [
        AUTH_PROVIDERS
      ],
    
      ...
    })
    
  • Затем используйте его везде, где вы хотите в своем приложении:

    import { AuthHttp } from 'angular2-jwt';
    this.authHttp.get('http://example.com/api/thing')
      .subscribe(
        data => this.thing = data,
        err => console.log(err),
        () => console.log('Request Complete')
      );
    

Таким образом, ваши запросы будут аутентифицированы, если у вас есть ваш токен в файле cookie с именем id_token, Если вы хотите сохранить свой токен другим методом (localStorage, indexedDb...), пожалуйста, обратитесь к документации модуля ( https://github.com/auth0/angular2-jwt) о том, как его изменить, но это довольно просто. Если вам это нужно, я могу объяснить это прямо здесь.

Надеюсь, поможет.

Насколько я понимаю из вашего короткого поста, вы просто хотите отправить токен в заголовке http-запроса. Я использую ту же стратегию в своих приложениях и не использую никаких дополнительных модулей.

У меня есть запрос на аутентификацию, и я храню свой токен в localStorage:

this.http.post('/login', userCredentials).subscribe(
    token => localStorage.addItem('Authorization', token),
    error => this.handleError(error)
)

Затем я просто получаю токен из localStorage и использую его в заголовках моих запросов:

let options = { headers: new Headers() };   
let jwt = localStorage.getItem('Authorization');
options.headers.append('Authorization', jwt); 

return this.http.get('/api/request', options)
           .map(result => result.json());

На мой взгляд, angular2-jwt полезен, если вы хотите декодировать свой jwt.

Другие вопросы по тегам