2017-11-27 6 views
1

私はjsonwebtokenを使用してトークンを解読しています。有効期限を取得しようとしています。活字体はexpプロパティに関するエラーを投げている、と私はそれらを解決する方法が非常にわからない:typescriptを使って `jsonwebtoken`でトークンの有効期限を取得する方法

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をキャストするトークンタイプに見えたが、いずれかを見つけることができませんでした。提案?

.tsconfig使用

:私はvar jwt = require('jsonwebtoken');に沿っimport jwt from 'jsonwebtoken' を使用した場合、私は同じエラーメッセージを持っ

{ 
    "compilerOptions": { 
    "allowJs": true, 
    "baseUrl": ".", 
    "jsx": "Preserve", 
    "moduleResolution": "Node", 
    "module": "ESNext", 
    "sourceMap": true, 
    "removeComments": true, 
    "allowSyntheticDefaultImports": true, 
    "target": "ESNext" 
    } 
} 
+0

を参照してください、あなたはPLSでした。私の解決策があなたのために働いていれば、私に教えてください。前もって感謝します。 – jps

答えて

1

[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

+0

質問を更新していただきありがとうございます。この問題は 'jsonwebtoken 'からの' import jwt'によって引き起こされます。それに応じて私の答えを更新しました。それがあなたのために働くことを願っています。 requireが見つからないというエラーが発生した場合は、 'npm install @ types/node --save-dev'を実行してください。https://stackoverflow.com/questions/31173738/typescript-getting-error-ts2304-cannot- find-name-require – jps

+1

これはうまくいきますが、誰かがrequireの代わりに引き続きimportを使うことができる解決策を持っていると良いでしょう。おそらく入力ファイルを変更する必要があります。 –

関連する問題