hw_18_05_jwt.html 1.3 KB

123456789101112131415161718192021222324252627282930313233
  1. <header>jwt</header>
  2. <body>
  3. <script>
  4. function jwtDecode(token) {
  5. if (!token || typeof token != "string")
  6. return undefined;
  7. let tokenArr = token.split(".");
  8. if (tokenArr.length != 3)
  9. return undefined;
  10. try {
  11. let tokenJsonStr = atob(tokenArr[1]);
  12. let tokenJson = JSON.parse(tokenJsonStr);
  13. return tokenJson;
  14. }
  15. catch {
  16. return undefined;
  17. }
  18. }
  19. const token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOnsiaWQiOiI2MzIyMDVhZWI3NGUxZjVmMmVjMWEzMjAiLCJsb2dpbiI6InRlc3Q0NTciLCJhY2wiOlsiNjMyMjA1YWViNzRlMWY1ZjJlYzFhMzIwIiwidXNlciJdfSwiaWF0IjoxNjY4MjcyMTYzfQ.rxV1ki9G6LjT2IPWcqkMeTi_1K9sb3Si8vLB6UDAGdw"
  20. console.log(jwtDecode(token))
  21. try {
  22. console.log(jwtDecode()) //undefined
  23. console.log(jwtDecode("дичь")) //undefined
  24. console.log(jwtDecode("ey.ey.ey")) //undefined
  25. console.log('до сюда доработало, а значит jwtDecode не матерился в консоль красным цветом')
  26. }
  27. finally {
  28. console.log('ДЗ, видимо, окончено')
  29. }
  30. </script>
  31. </body>