JWT-解码需要未定义,jwt解码未定义

Posted

技术标签:

【中文标题】JWT-解码需要未定义,jwt解码未定义【英文标题】:JWT- Decode require not defined, jwt decode not defined 【发布时间】:2019-08-01 10:16:50 【问题描述】:

我在使用 JWT 解码时遇到问题,似乎无法完成这项工作

var token = 'eyJ0eXAiO.../// jwt token';

var decoded = jwtDecode(token);
console.log(decoded);

有这个要求

var jwtDecode = require('jwt-decode');
enter code here

我已经 npm install jwt-decode 并尝试 jwt-简单

我只想以最简单的方式解码有效载荷

请帮帮我,这是我的代码

<script>

var jwtDecode = require('jwt-decode');
var token = 'eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ';

var decoded = jwtDecode(token);
console.log(decoded);

function myFunction() 
  alert(decoded);

</script>
<script src='/js/jwt-decode.js'></script>
<script>

        var jwtDecode = require('jwt-decode');
        var token = 'eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ';

        var decoded = jwtDecode(token);
        console.log(decoded);

        function myFunction() 
          alert(decoded);
        
</script>


【问题讨论】:

【参考方案1】:

require 未在浏览器中定义。相反,您需要通过脚本标签包含库文件。可以获取库文件here。

您可以将那里的代码复制并粘贴到jwt-decode.js 文件中。 示例:

<script src='./jwt-decode.js'></script>
<script>
   const decoded = jwt_decode(jwtToken);
   console.log(decoded);
</script>

【讨论】:

嗨,jro 已经更改了我的代码,但错误是这个 var jwtDecode = require('jwt-decode');引用错误:require 未定义 如果您在浏览器中运行,则需要使用脚本标签来包含库。如果您在浏览器中运行,请在您的问题中指定 用浏览器环境更新答案 required 还没有定义,我对自己失去了希望 @MichaelBenGabriel 您应该从浏览器代码中删除所有要求【参考方案2】:

首先你需要下载库https://github.com/auth0/jwt-decode 然后只需使用

<script src="js/jwt-decode.min.js"></script>

var token = 'eyJ0eXAiO.../// your jwt token';
var decoded = jwt_decode(token);
console.log(decoded);

【讨论】:

嗨@riajul,当我通过解码以提醒它显示[object object]但console.log工作正常。 alert js 有什么问题,谢谢 解决方案运行良好。 console.log 可以完美地与对象一起工作,但警报不能完美地与长对象一起工作。尽管您可以在警报中显示任何元素,例如 alert(object.element) 感谢等待您的支持:P 建议:永远不要使用 alert 来显示任何对象,只使用 console.log 来显示对象、数组或任何长数据。警报用于一两行字符串类型数据 明白你的意思。但我需要数据以任何形式显示,如文本输入、标签、div id 等。还有其他方法吗?我尝试使用 getelementid 和 append 将它放在一个 div 中,输出也是对象对象。 将解码附加到 div 或 id 时出现静止对象对象:(

以上是关于JWT-解码需要未定义,jwt解码未定义的主要内容,如果未能解决你的问题,请参考以下文章

为啥这个经过验证的 JSON Web Token (JWT) 输出未定义?

解码 jwt 时,AuthenticationEvent 未发布错误

是否在服务器端存储未解码的 jwt 令牌?

提取 JWT 时请求未定义

令牌无效错误:指定的令牌无效:无法读取未定义的属性“替换”?

jwt sign(我需要获得令牌,但我得到了未定义)