我正在尝试在angular 6中实现angular2-jwt发送实现请求,但出现错误,似乎该软件包不适用于angular 6
我的代码:
ERROR in node_modules/angular2-jwt/angular2-jwt.d.ts(3,10): error TS2305: Module '"D:/.../.../.../node_modules/rxjs/Observable"' has no exported member 'Observable'.
node_modules/rxjs/Observable.d.ts(1,15): error TS2307: Cannot find module 'rxjs-compat/Observable'.
错误:
[3, 1000, 3]
答案 0 :(得分:1)
您使用的angular-jwt
版本不支持Angular 6和RxJS6。
您应该删除此版本并安装较新的版本:
npm install @auth0/angular-jwt
并按以下方式使用它:
import { JwtModule } from '@auth0/angular-jwt';
import { HttpClientModule } from '@angular/common/http';
export function tokenGetter() {
return localStorage.getItem('jwt');
}
@NgModule({
imports: [
// this is the specific part
HttpClientModule,
JwtModule.forRoot({
config: { tokenGetter }
}),
]
})
export class AuthModule {}
这将使HttpClient
内使用AuthModule
发出的每个HTTP请求都具有自动发送的凭据。
您可以通过在组件/服务中注入JwtHelperService
来使用库提供的实用程序功能(检查令牌的有效性等):
import { JwtHelperService } from '@auth0/angular-jwt';
@Injectable
export class MyService {
constructor(private jwtUtil: JwtHelperService) {}
}
您可以阅读文档here。