Angular 令牌未过期模块不工作,6

Angular 令牌未过期模块不工作,6,angular,typescript,jwt,Angular,Typescript,Jwt,错误: node_modules/angular2 jwt/angular2 jwt.d.ts(3,10)中的错误:错误TS2305:模块“C:/Users/Charles Edwin Ison/OOP/node_modules/rxjs/Observable”没有导出的成员“Observable”。 节点_modules/rxjs/Observable.d.ts(1,15):错误TS2307:找不到模块“rxjs compat/Observable” 如何解决这个问题?我使用@auth0/an

错误:

node_modules/angular2 jwt/angular2 jwt.d.ts(3,10)中的错误:错误TS2305:模块“C:/Users/Charles Edwin Ison/OOP/node_modules/rxjs/Observable”没有导出的成员“Observable”。 节点_modules/rxjs/Observable.d.ts(1,15):错误TS2307:找不到模块“rxjs compat/Observable”


如何解决这个问题?

我使用@auth0/angular jwt和angular 6解决了这个问题。首先需要完全卸载angular2 jwt:

import { tokenNotExpired } from 'angular2-jwt';
然后您可以运行:

npm uninstall angular2-jwt --save

只有这两条命令行对我有帮助

如果您使用的是Angular 4.3或更高版本,您没有旧版本的angular2 jwt的支持。如果使用较旧版本,则会出现更多错误,因为它依赖Angular的HttpClient的Http侦听器。您可以下载新版本@auth0/Angular jwt,并实现tokenNotExpired的方法

npm install @auth0/angular-jwt
简单地说,您可以用这种方式实现

# installation with npm
npm install @auth0/angular-jwt
在auth.service.ts中:

npm uninstall angular2-jwt
npm install @auth0/angular-jwt
npm install rxjs-compat --save
}

在header.component.html中:

import { JwtHelperService } from "@auth0/angular-jwt";
 token: string

  isAuthenticated() {
return this.jwtHelper.isTokenExpired(this.token);
仪表板 登录
请查看“感谢分享您的解决方案”的链接。但是,tokenNotExpired在此库中不可用。如何导入此函数?
import { JwtHelperService } from "@auth0/angular-jwt";
 token: string

  isAuthenticated() {
return this.jwtHelper.isTokenExpired(this.token);
 <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>