我试图通过使用Auth0和JWT来保护我的SPA应用程序。如果我用@ar角/ 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]
}
],发布于 2017-07-24 20:03:44
当将noJwtError对象中的AuthConfig对象设置为true时,带有无效或缺失令牌的请求将与常规HTTP请求一起进行(不进行身份验证)。
如果是这样的话,您应该检查您的令牌是否可以在提供的位置被访问(这里是sessionStorage.getItem('token')从DevTools控制台),以及所提供的令牌是否有效。要检查有效性,可以通过https://jwt.io使用令牌调试器。
https://stackoverflow.com/questions/45265441
复制相似问题