Auth0 / Angular2-Jwt不能与Angular 5一起使用

时间:2018-01-25 13:11:31

标签: angularjs json jwt angular5 auth0

Angular2-JWT有一个特殊的功能我需要使用它来显示/隐藏基于记录的用户令牌存储在localStorage中的链接。

tokenNotExpired();

我一直在寻找实现条件语句的替代方法,显示导航链接IF令牌位于localStorage中,但似乎无法正常工作。

 import { Injectable } from '@angular/core';
 import {Http, Headers} from '@angular/http';
 import 'rxjs/add/operator/map'
 import { BehaviorSubject } from 'rxjs/BehaviorSubject';
 import { HttpClientModule } from '@angular/common/http';
 import { CanActivate} from '@angular/router';
 import {FlashMessagesModule} from 'angular2-flash-messages';
 import { JwtModule } from '@auth0/angular-jwt';
 @Injectable()
 export class AuthService{
   authToken:null;
   user:any;
    isLoggedin: boolean = false;
   constructor(private http:Http) { }



   isLoggedIn() {
     if (localStorage.getItem("id_token") == null) {
         this.isLoggedin = false;
         console.log(this.isLoggedIn);
         return this.isLoggedin;
     }
     else {
       console.log(this.isLoggedIn);
         return true;
     }
   }

我无法理解为什么它无法正常工作。 也许我错过了什么。

<ul class="nav-l" NgClass="{'invisible':isLoggedIn()===true}">
  <li class="nav-link" NgIf="isLoggedIn()"  [routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact:true}"><a [routerLink]="'/home'">Home</a></li>
  <li class="nav-link" NgIf="isLoggedIn()" [routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact:true}"><a [routerLink]="'/about'">About</a></li>
  <li class="nav-link" NgIf="isLoggedIn()" [routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact:true}"><a [routerLink]="'/feature'">Features</a></li>
  <li class="nav-link" NgIf="isLoggedIn()" [routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact:true}"><a [routerLink]="'/contact'">Contact</a></li>

在上面的HTML中,我尝试了两种隐藏它们的方法(NgClass条件和NgIf条件)。

1 个答案:

答案 0 :(得分:1)

重要的是要知道哪些架构经常变化,例如。用户,公司或项目...

如果架构没有经常更改,您可以将其嵌入其父架构中,但嵌入数据太难以操作,否则您可以将其ID嵌入新字段中。

如果您的UserSchema经常更改,则可以使用child referencing

const CompanySchema = mongoose.Schema({
    name: {
        type: String
    },
    ....
    userIds: [1, 2, 3]
})

如果您的CompanySchema经常更改,请parent referencing

const UserSchema = mongoose.Schema({
    name: {
        type: String
    },
    ....
    companyId: 1
})

在这一个中,companyId可以是null

我希望这会有所帮助。