Как применить токен 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.