Advertisement
ItsTotallyRSX

JWT

Jul 15th, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const crypto = require('crypto');
  2.  
  3. let header = {
  4.   "alg": "HS256",
  5.   "test": "",
  6.   "typ": "JWT"
  7. };
  8.  
  9. let body = {
  10.   "sub": "1234567890",
  11.   "name": "John Doe",
  12.   "iat": 1516239022
  13. }
  14.  
  15. function removePadding(base64) {
  16.     return base64.split("=").join("");
  17. }
  18.  
  19. function toBase64(string) {
  20.     return Buffer.from(string).toString("base64");
  21. }
  22.  
  23. function process(body, header, key) {
  24.     var contents = removePadding(toBase64(JSON.stringify(header))) + "." + removePadding(toBase64(JSON.stringify(body)))
  25.     var hmac = crypto.createHmac('sha256',  key);
  26.     hmac.update(contents);
  27.     contents  += "." + removePadding(hmac.digest('base64'));
  28.     return contents;
  29. }
  30.  
  31. let jwt = process(body, header, 'ffffffddfd');
  32. console.log(jwt)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement