Auth0 Angular 2.使用AuthHttp时出错
Auth0 Angular 2. Error when using AuthHttp
我正在尝试使用 Auth0 和 JWT 来保护我的 SPA 应用程序。如果我使用来自 @angular/http 的 "normal" Http 执行 http.get,它工作正常,但是当我使用 AuthHttp 执行完全相同的调用时,什么也没有发生,也没有错误。
这是我的服务:
constructor(private authHttp: AuthHttp) {
}
loadItems(): Observable<FrontItemDto[]> {
return this.authHttp.get ( `${ServiceSettings.ApiUrl}/front` )
.map ( res => {
res.json ();
} )
.catch ( (error: any) => Observable.throw ( error.json ().error || 'Server error' ) );
}
这是app.module
import { AuthHttp, AuthConfig } from 'angular2-jwt';
...
export function authHttpServiceFactory(http: Http, options: RequestOptions) {
return new AuthHttp(new AuthConfig({
tokenName: 'token',
tokenGetter: (() => sessionStorage.getItem('token')),
globalHeaders: [{'Content-Type': 'application/json'}],
}), http, options);
}
....
providers: [
...
AuthService,
{
provide: AuthHttp,
useFactory: authHttpServiceFactory,
deps: [Http, RequestOptions]
}
],
将 AuthConfig
对象中的 noJwtError
设置为 true
时,带有无效或缺失令牌的请求将通过常规 HTTP 请求(无需身份验证)。
如果是这种情况,您应该检查是否可以在提供的位置访问您的令牌(此处 sessionStorage.getItem('token')
来自 DevTools 控制台)以及提供的令牌是否有效。要检查有效性,例如,您可以通过 https://jwt.io.
使用令牌调试器
我正在尝试使用 Auth0 和 JWT 来保护我的 SPA 应用程序。如果我使用来自 @angular/http 的 "normal" Http 执行 http.get,它工作正常,但是当我使用 AuthHttp 执行完全相同的调用时,什么也没有发生,也没有错误。 这是我的服务:
constructor(private authHttp: AuthHttp) {
}
loadItems(): Observable<FrontItemDto[]> {
return this.authHttp.get ( `${ServiceSettings.ApiUrl}/front` )
.map ( res => {
res.json ();
} )
.catch ( (error: any) => Observable.throw ( error.json ().error || 'Server error' ) );
}
这是app.module
import { AuthHttp, AuthConfig } from 'angular2-jwt';
...
export function authHttpServiceFactory(http: Http, options: RequestOptions) {
return new AuthHttp(new AuthConfig({
tokenName: 'token',
tokenGetter: (() => sessionStorage.getItem('token')),
globalHeaders: [{'Content-Type': 'application/json'}],
}), http, options);
}
....
providers: [
...
AuthService,
{
provide: AuthHttp,
useFactory: authHttpServiceFactory,
deps: [Http, RequestOptions]
}
],
将 AuthConfig
对象中的 noJwtError
设置为 true
时,带有无效或缺失令牌的请求将通过常规 HTTP 请求(无需身份验证)。
如果是这种情况,您应该检查是否可以在提供的位置访问您的令牌(此处 sessionStorage.getItem('token')
来自 DevTools 控制台)以及提供的令牌是否有效。要检查有效性,例如,您可以通过 https://jwt.io.