我正在制作一个简单的平均身份验证应用程序,其中 angular2-jwt 用于验证登录的用户,现在,我希望在登录之前,我不希望在导航栏上显示仪表板、配置文件,而在登录后,注册和登录应该被隐藏,所以我 angular2-jwt,但它无法正常工作,我正在分享下面的代码。想要在登录前隐藏仪表板,个人资料
这是我正在使用的导航栏代码
<ul class="nav navbar-nav navbar-right">
<li *ngIf="authService.loggedIn()" [routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact:true}">
<a [routerLink]="['/dashboard']">Dashboard</a>
</li>
<li *ngIf="!authService.loggedIn()" [routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact:true}">
<a [routerLink]="['/profile']">Profile</a>
</li>
<li *ngIf="!authService.loggedIn()" [routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact:true}">
<a [routerLink]="['/login']">Login</a>
</li>
<li *ngIf="authService.loggedIn()" [routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact:true}">
<a [routerLink]="['/register']">Register</a>
</li>
<li>
<a *ngIf="authService.loggedIn()" (click)="onLogoutClick()" href="#">Logout</a>
</li>
</ul>
这是我做的服务
loggedIn(){
return tokenNotExpired();
}
但在使用它时,它最初会隐藏仪表板、配置文件和注销,但即使在登录后,这三个链接也会被隐藏,并且不显示:
仍然没有显示,即使我已登录
我正在使用本指南:https://github.com/auth0/angular2-jwt#checking-authentication-to-hideshow-elements-and-handle-routing
这里的问题是,因为你的tokenNotExpired
返回一个你不能使用的标记 ngIf 直接在函数上,因为它在布尔值上工作,因此按如下方式更改函数,
loggedIn(){
if(tokenNotExpired() != null){
return true;
}
return false;
}