Kar*_*ter 6 javascript jwt typescript
我想检查 an 的类型是否Error是TokenExpiredError由使用 Typescript 的库jwt.verify函数抛出的,例如jsonwebtokeninstanceof
import jwt from "jsonwebtoken";
function someFunction() {
try {
return jwt.verify(token, key);
}catch(err) {
if(err instanceof TokenExpiredError) {
return attemptRenewal()
}
throw err
}
}
Run Code Online (Sandbox Code Playgroud)
如何导入符号TokenExpiredError?
我没有找到任何关于这个重要课程的文档,也是我想到的唯一直观的文档
import { jwt, TokenExpiredError } from "jsonwebtoken";
Run Code Online (Sandbox Code Playgroud)
原因jwt是undefined.
我知道解决方法,例如与类名执行字符串比较,但我想生成干净的代码。
我正在使用jsonwebtoken8.5.1。
Aci*_*ide 10
我有同样的询问,但经过快速搜索和测试后,下面应该可以工作
import * as jwt from "jsonwebtoken";
function someFunction() {
try {
return jwt.verify(token, key);
}catch(err) {
if(err instanceof jwt.TokenExpiredError) {
return attemptRenewal()
}
throw err
}
}
Run Code Online (Sandbox Code Playgroud)
TokenExpiredError已作为 jwt 的一部分导入。
jsonwebtoken导出默认对象,例如:source
module.exports = {
decode: require('./decode'),
verify: require('./verify'),
sign: require('./sign'),
JsonWebTokenError: require('./lib/JsonWebTokenError'),
NotBeforeError: require('./lib/NotBeforeError'),
TokenExpiredError: require('./lib/TokenExpiredError'),
};
Run Code Online (Sandbox Code Playgroud)
这意味着,当您使用import jwt from "jsonwebtoken";语法时,jwt将得到一个具有默认导出的所有属性的对象。
您不能使用import { jwt, TokenExpiredError } from "jsonwebtoken";,因为在默认导出对象中,我们没有jwt属性,
如果你想导入TokenExpiredError默认对象,你可以遵循如下语法:import jwt, {TokenExpiredError} from "jsonwebtoken";,那么jwt仍然是默认导出对象,并且你有TokenExpiredError对象(jwt.TokenExpiredError和TokenExpiredError是相同的)。
如果您只想使用verify函数 and TokenExpiredError,则导入行将变为:import {TokenExpiredError, verify} from "jsonwebtoken";,那么您的函数将如下所示:
import {TokenExpiredError, verify} from "jsonwebtoken";
function someFunction() {
try {
return verify(token, key);
} catch (err) {
if (err instanceof TokenExpiredError) {
return attemptRenewal()
}
throw err
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6679 次 |
| 最近记录: |