我正在使用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/

    10-09 02:36