我正在使用angular-jwt来拦截我的请求并添加JWT令牌,但这似乎并没有发生。
这是我的角度信息:
Angular CLI: 6.0.8
Node: 9.11.2
OS: linux x64
Angular: 6.0.6
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router
Package Version
-----------------------------------------------------------
@angular-devkit/architect 0.6.8
@angular-devkit/build-angular 0.6.8
@angular-devkit/build-optimizer 0.6.8
@angular-devkit/core 0.6.8
@angular-devkit/schematics 0.6.8
@angular/cli 6.0.8
@ngtools/webpack 6.0.8
@schematics/angular 0.6.8
@schematics/update 0.6.8
rxjs 6.2.1
typescript 2.7.2
webpack 4.8.3
这是我的app.module.ts
:
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
HttpClientModule,
JwtModule.forRoot({
config: {
tokenGetter: tokenGetter,
whitelistedDomains:['127.0.0.1:8000'],
blacklistedRoutes: ['127.0.0.1:8000/api/v1/accounts/login/', '127.0.0.1:8000/api/v1/signup/'],
authScheme: 'JWT ',
throwNoTokenError: true
}
}),
CommonModule,
}
这是我的package.json
的一部分:
"@angular/router": "^6.0.3",
"@auth0/angular-jwt": "^2.0.0",
对不起,我忘了提到我在tokenGetter
中定义了一个app.module.ts
函数:
export function tokenGetter() {
return localStorage.getItem('token');
}
现在您只需使用Angular的HTTP客户端发出请求即可
export function tokenGetter() {
return localStorage.getItem('access_token');
}
资料来源:import { HttpClient } from '@angular/common/http';
export class AppComponent {
constructor(public http: HttpClient) {}
ping() {
this.http
.get('http://example.com/api/things')
.subscribe(data => console.log(data), err => console.log(err));
}
}