[英]Decode Jwt Token in Node - without Library
I have a following code to decode the Jwt token in Javascript (ref: How to decode jwt token in javascript )我有以下代码来解码 Javascript 中的 Jwt 令牌(参考: 如何在 javascript 中解码 jwt 令牌)
const token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c'; function parseJwt(token) { var base64Url = token.split('.')[1]; var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/'); console.log(JSON.parse((atob(base64)))) }; parseJwt(token);
I am getting the payload which I needed from above code But I am implementing it in node where we dont have "atob" function to decode the base64 encoded string我从上面的代码中获得了我需要的有效载荷但是我在节点中实现它,我们没有“atob”函数来解码 base64 编码的字符串
Seems we need to use Buffer in node.看来我们需要在 node.js 中使用 Buffer 。 Did my research and came up with below solution which didn't work.做了我的研究并提出了以下不起作用的解决方案。
const token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c'; function parseJwt(token) { const base64Url = token.split('.')[1]; const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/'); const buff = new Buffer(base64, 'base64'); const payloadinit = buff.toString('ascii'); const payload = JSON.parse(payloadinit); console.log(payload) }; parseJwt(token);
Please let me know if there is any better approach - No libraries(Jwt, or decode-Jwt)请让我知道是否有更好的方法 - 没有库(Jwt 或 decode-Jwt)
Actually I have tried it in independent environment and above code works like charm for getting Jwt token pay load实际上我已经在独立环境中尝试过,上面的代码就像获得 Jwt 令牌有效负载的魅力一样
const token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' const base64Url = token.split('.')[1]; const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/'); const buff = new Buffer(base64, 'base64'); const payloadinit = buff.toString('ascii'); const payload = JSON.parse(payloadinit); console.log(payload);
https://repl.it/@Punith/RuralSeveralAdaware https://repl.it/@Punith/RuralSeveralAdaware
const DecodeJWT= (token) => {
try {
return JSON.parse(atob(token.split('.')[1]));
} catch (e) {
return null;
}
};
simple & easy way简单易行的方法
您可以检查一下以获得atob功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.