我正在尝试使用Auth0和JWT保护我的SPA应用程序。如果我用来自@ angular / http的“普通”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]
}
],
答案 0 :(得分:0)
将noJwtError
对象中的AuthConfig
设置为true
时,带有无效或丢失令牌的请求将通过常规HTTP请求(无需身份验证)。
如果是这种情况,您应该检查您的令牌是否可以在提供的位置访问(这里是来自DevTools控制台的sessionStorage.getItem('token')
)以及提供的令牌是否有效。要检查有效性,您可以使用https://jwt.io之前的令牌调试程序。