【问题标题】:Angular JWT package not validating my tokens correctlyAngular JWT 包未正确验证我的令牌
【发布时间】:2019-09-09 07:38:39
【问题描述】:

所以我使用 angular 7 和 @auth0/angular-jwt 包。我在某些路线上有一个身份验证守卫,我检查 jwt 令牌是否已过期。不管我做什么,这个方法总是说令牌已过期。我知道令牌是有效的,因为它们是邮递员。有人对这个 isTokenExpired 方法有经验吗?

import { Injectable } from '@angular/core';
import { JwtHelperService } from '@auth0/angular-jwt';


@Injectable({ providedIn: 'root' })
export class AuthService {

private jwtHelper = new JwtHelperService()



// ...
public isAuthenticated(): boolean {
const token = localStorage.getItem('token');


// Check whether the token is expired and return
// true or false
return !this.jwtHelper.isTokenExpired(token);

  }
}

【问题讨论】:

  • lol 有一个包 :o :D 这只是一些 base64 编码,编写脚本可能比搜索包更快
  • 你用什么来创建令牌?
  • 你检查过本地存储中是否真的有一个令牌?
  • @matt 你能在后端显示你设置为 exp 的内容吗?如果您使用 'expiresIn',请记住它必须作为对象传递,例如 { expiresIn : '1h' }。
  • @BrandonMiller 啊,就是这样!愚蠢的我以为它默认设置了一些过期时间......非常感谢!

标签: angular jwt angular7


【解决方案1】:

你能在后端显示你设置的 exp 吗?

如果您使用 'expiresIn',请记住它必须作为对象传递,如下所示:

{ expiresIn : '1h' }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-18
    • 2019-06-23
    • 2017-07-27
    • 2019-10-20
    • 2016-01-17
    • 2020-08-23
    • 1970-01-01
    • 2017-12-04
    相关资源
    最近更新 更多