import { tokenNotExpired } from 'angular2-jwt';
错误:
node_modules / angular2-jwt / angular2-jwt.d.ts(3,10)中的错误:错误TS2305:模块'“ C:/ Users / Charles Edwin Ison / OOP / node_modules / rxjs / Observable”没有导出的成员“可观察”。 node_modules / rxjs / Observable.d.ts(1,15):错误TS2307:找不到模块“ rxjs-compat / Observable”。
该如何解决?
答案 0 :(得分:0)
我使用带有角度6的@ auth0 / angular-jwt解决了此问题。您首先需要完全卸载angular2-jwt:
npm uninstall angular2-jwt --save
然后您可以运行:
npm install @auth0/angular-jwt
只有这两个命令行对我有所帮助。
答案 1 :(得分:0)
如果您正在使用Angular 4.3或更高版本,则不支持旧版本的 angular2-jwt 。如果您使用的是旧版本,则由于它依赖于Angular的HttpClient的Http拦截器,因此会出现更多错误。您可以下载新版本 @ auth0 / angular-jwt 并为tokenNotExpired实现方法>
# installation with npm
npm install @auth0/angular-jwt
您可以通过这种方式实现
export function tokenGetter(access_token : string) {
return localStorage.getItem(access_token);
}
private tokenNotExpired(token : string)
{
const item: string = tokenGetter(token);
return item != null && !this.jwtHelper.isTokenExpired(item);
}
答案 2 :(得分:0)
npm uninstall angular2-jwt
npm install @auth0/angular-jwt
npm install rxjs-compat --save
在 auth.service.ts 中:
import { JwtHelperService } from "@auth0/angular-jwt";
token: string
isAuthenticated() {
return this.jwtHelper.isTokenExpired(this.token);
}
在 header.component.html 中:
<a class="nav-link" [routerLink]="['/dashboard']" routerLinkActive="active-link"
*ngIf="!authService.isAuthenticated()"
[routerLinkActiveOptions]="{exact: true}">Dashboard</a>
<a class="btn btn-outline-primary me-2" *ngIf="authService.isAuthenticated()"
[routerLink]="['/auth']" tabindex="-1" aria-disabled="true">Sign in</a>