angular2-jwt令牌不起作用,LoggedIn功能无法正常工作

时间:2018-01-27 18:00:25

标签: angular authentication mean-stack angular2-jwt auth-guard

我正在制作一个简单的卑鄙auth应用程序,其中angular2-jwt用于验证用户登录,现在,我希望在登录之前,我不希望仪表板,配置文件显示在导航栏上,而登录后,注册和登录应隐藏所以我angular2-jwt,但它无法正常工作,我在下面分享代码。 want to hide Dashboard, Profile before logging in

这是我正在使用的导航栏代码

def f(x):
    return x[x['Pos'] == x['Pos'].max()]

df = df.groupby(level=[0,1], group_keys=False).apply(f)
print (df)
                  Pos  AskPrice
Type StrikePrice               
C    1500.0        12     281.7
P    1400.0        31    1250.2

这是我所做的服务

      <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>

}

但在使用它时,它最初会隐藏仪表板,配置文件和注销,但即使在登录后,这三个链接也会隐藏,而不会显示:

still not showing, even i am logged in

我正在使用本指南:https://github.com/auth0/angular2-jwt#checking-authentication-to-hideshow-elements-and-handle-routing

1 个答案:

答案 0 :(得分:0)

这里的问题是,因为你的 tokenNotExpired 会返回一个令牌,你不能直接通过函数使用ngIf,因为它在布尔值上工作,更改你的函数,如下所示,

loggedIn(){
  if(tokenNotExpired() != null){
    return true;
  }
  return false;
}