egg-jwt过期校验
时间: 2023-07-08 16:48:29 浏览: 218
egg-jwt是一个用于在Egg.js框架中使用JSON Web Token进行身份验证和授权的插件。要进行过期校验,可以在生成JWT时设置一个有效期,然后在验证JWT时检查它是否过期。
在Egg.js的配置文件中,可以设置JWT的过期时间:
```javascript
// config/config.default.js
exports.jwt = {
secret: 'your secret key',
expiresIn: '1h' // 设置过期时间
};
```
然后,在生成和验证JWT时,可以使用`jwt.sign()`和`jwt.verify()`方法。例如:
```javascript
// 生成JWT
const jwt = require('jsonwebtoken');
const token = jwt.sign({ username: 'user' }, app.config.jwt.secret, { expiresIn: app.config.jwt.expiresIn });
// 验证JWT
const jwt = require('jsonwebtoken');
try {
const decoded = jwt.verify(token, app.config.jwt.secret);
console.log(decoded); // { username: 'user', iat: 1619107027, exp: 1619110627 }
} catch (err) {
console.log(err);
}
```
注意,在验证JWT时,如果它已经过期,`jwt.verify()`方法会抛出一个`TokenExpiredError`错误。可以通过捕获这个错误来处理过期的情况:
```javascript
const jwt = require('jsonwebtoken');
try {
const decoded = jwt.verify(token, app.config.jwt.secret);
console.log(decoded); // { username: 'user', iat: 1619107027, exp: 1619110627 }
} catch (err) {
if (err.name === 'TokenExpiredError') {
console.log('Token expired');
} else {
console.log(err);
}
}
```
阅读全文