我正在使用jsonwebtoken
解码 token ,并且正在尝试获取到期日期。 Typescript抛出有关exp
属性的错误,但我不确定如何解决这些错误:
import jwt from 'jsonwebtoken'
const tokenBase64 = 'ey...' /* some valid token */
const token = jwt.decode(tokenBase64)
const tokenExpirationDate = token.exp
// ^^^
// Property 'exp' does not exist on type 'string | object'. Property 'exp' does not exist on type 'string'.
我已经安装了
@types/jsonwebtoken
,并寻找了一种标记类型来转换token
,但是没有找到任何 token 类型。有什么建议吗?使用
@types/[email protected]
[email protected]
.tsconfig:
{
"compilerOptions": {
"allowJs": true,
"baseUrl": ".",
"jsx": "Preserve",
"moduleResolution": "Node",
"module": "ESNext",
"sourceMap": true,
"removeComments": true,
"allowSyntheticDefaultImports": true,
"target": "ESNext"
}
}
最佳答案
使用import jwt from 'jsonwebtoken'
行时出现相同的错误消息
使用var jwt = require('jsonwebtoken');
[1]可以正常工作:
var jwt = require('jsonwebtoken');
var tokenBase64 = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiZXhwIjoiMTUxMTk1MDcwMyIsImFkbWluIjp0cnVlfQ.wFC-9ZsqA9QuvLkRSkQmVYpUmgH9R-j8M4D0GECuPHY';
const token = jwt.decode(tokenBase64);
const tokenExpirationDate = token.exp
console.log(tokenExpirationDate);
[1]另请参见https://github.com/auth0/node-jsonwebtoken关于typescript - 如何使用Typescript使用 `jsonwebtoken`获得 token 到期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47508424/