Node JWT/jsonwebtoken 使用与原理分析

作者: 梁同桌 | 来源:发表于2017-04-06 21:16 被阅读2449次

JWT 是一个方便的一种实现服务器与客服端安全通讯的一种规范方案,当然基于 JWT 的概念自
己可以实现安全的加密方案,另外也可以重复造一些轮子。

1.安装

$ npm install jsonwebtoken --save

2.我们先来看加密与解密方法:

const jwt = require('jsonwebtoken');
const secret = 'aaa'; //撒盐:加密的时候混淆

   //jwt生成token
 const token = jwt.sign({
     name: 123
  }, secret, {
     expiresIn:  60 //秒到期时间
  });
console.log(token);
//解密token
jwt.verify(token, secret, function (err, decoded) {
    if (!err){
          console.log(decoded.name);  //会输出123,如果过了60秒,则有错误。
     }
})

我们看看jwt.sign 生成的token:
【eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoxMjMsImlhdCI6MTQ5MTQ3NTQyNCwiZXhwIjoxNDkxNDc1NDg0fQ.hYNC4qFAyhZClmPaLixfN137d41R2CFk1xPlfLK10JU】

我们仔细看这字符串,分为三段。分别被 "." 隔开。
我们对:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 由 base64 解密得到
{"alg":"HS256","typ":"JWT"} alg 是加密算法名字,typ 是类型

这段: eyJuYW1lIjoxMjMsImlhdCI6MTQ5MTQ3NTQyNCwiZXhwIjoxNDkxNDc1NDg0fQ 由base64解密得到: {"name":123,"iat":1491475424,"exp":1491475484} name 是我们储存的内容,但是多了 iat(创建的时间戳),exp(到期时间戳)。

最后一段是hYNC4qFAyhZClmPaLixfN137d41R2CFk1xPlfLK10JU,是由前面俩段字符串
HS256 加密后得到。 所以前面的任何一个字段修改,都会导致加密后的字符串不匹配。

我们只有在登陆的时候下发 token,浏览器在 cookie 里存储 token 任何人修改,都会导致服务器匹配不上。

个人博客: http://www.liangtongzhuo.com

相关文章

  • Node JWT/jsonwebtoken 使用与原理分析

    JWT 是一个方便的一种实现服务器与客服端安全通讯的一种规范方案,当然基于 JWT 的概念自己可以实现安全的加密方...

  • Node中使用JWT

    下载 测试 在命令行中输入node 进入node命令行 引入jwt,jsonwebtoken包被引入到jwt这个对...

  • JsonWebToken

    JWT (JsonWebToken) JWT官网['https://jwt.io/'] JWT简介 1.JWT(J...

  • Node常用模块用法

    jwt用法 const jwt =require("jsonwebtoken"); var secret ="ba...

  • JWT 鉴权

    使用 koa-jwt + jsonwebtoken 完成用户鉴权功能。项目地址:https://github.co...

  • 9.3KOA JsonWebToken

    JsonWebToken 介绍 JsonWebToken(简称:JWT)是一种完全的客户端客户端解决session...

  • NodeJs jwt(JsonWebToken)

    导入模块 在js文件中引用 生成Token 校验Token 注意事项 请使用expiresIn:以秒为单位或描述的...

  • jwt使用原理

    jwt使用原理 概念: springboot-jwt-2020 JWT原理 服务器认证以后会生产一个json对象,...

  • JWT(二):使用 Java 实现 JWT

    JWT(一):认识 JSON WebTokenJWT(二):使用 Java 实现 JWT 介绍 原理在上篇《JWT...

  • jsonwebtoken设置token passport

    首先设置下载库文件 jsonwebtoken设置token passport passport-jwt获取toke...

网友评论

本文标题:Node JWT/jsonwebtoken 使用与原理分析

本文链接:https://www.haomeiwen.com/subject/hdiqattx.html