【问题标题】:How to check if auth token is expired and force logout?如何检查身份验证令牌是否已过期并强制注销?
【发布时间】:2019-05-03 22:33:50
【问题描述】:

我正在使用 auth0 进行客户端用户身份验证和授权。这是流程`

const authService = new auth0.WebAuth(coreConstants.AUTH0_OPTIONS);
const currentDate = Date.now();

authService.parseHash((err, authResult) => {
    if(err) console.log(err)
    const idToken = authResult.idToken;
    window.localStorage.setItem('auth', JSON.stringify({
                            expiresAt: someDate + Date.now()
                            accessToken: authResult.accessToken,
                            idToken,
                        }));
})

我现在的问题是,当令牌过期时,用户还可以与页面交互,只需刷新页面就会将用户重定向到登录页面。我已经阅读了auth0 文档,但找不到合适的解决方案来检查令牌是否已过期。有什么建议吗?

【问题讨论】:

  • 您在每次页面加载时检查什么条件?
  • 我正在检查 expireDate 是否小于 currentDate ,如果不是,用户应该再次通过身份验证流程。但是authentication 函数在 componentDidMount 中只运行一次。我只是认为在每次路线更改时都调用它不是一个好习惯
  • 添加完整代码。所以我可以检查。也分享路由器模块名称

标签: javascript node.js reactjs authentication oauth-2.0


【解决方案1】:

你试过jwt.verify 吗?它会检查令牌是否过期。

【讨论】:

  • 我使用 express-jwt。是否可以检查该库?
  • 我不知道它是否可能,试试看,或者你可以使用这个 express-jwt 包 - link
猜你喜欢
  • 2021-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-27
  • 2021-07-31
  • 2023-03-12
  • 2021-04-07
  • 2016-12-29
相关资源
最近更新 更多