jsonwebtoken如何生成与解析令牌

  介绍

这篇文章主要讲解了“jsonwebtoken如何生成与解析牌”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jsonwebtoken如何生成与解析牌”吧!

,,,,,,,,之前写了一篇介绍<强>标记强的文章:简单理解牌机制,<强>标记算法自己设计的,使用了随机算法,导致<强>标记无法进行反向解密,所以我当初使用了<强>复述,强进行存储<强>标记强,前端调用 <强> API时需要携带<强>标记强进行身份验证,<强>标记有效期<强> 48 小时。但是我们有说过:<强> sessionid 是需要空间进行存储的,但是<强>标记在服务器是可以不需要存储用户信息的,所以我们能不能做到用户注册登陆成功给用户生成一个<强>标记强返回给客户端,等前端携带<强>标记强调用 <强> API时我们直接解析<强>标记看能否解析出用户数据来决定用户是否有接口权限呢?事实上<强> NodeJS 强提供的一个<强> npm 包:<强> jsonwebtoken 强就可以实现<强>标记强的生成与反向解密出用户数据。接下来我们看看<强> jsonwentoken 强如何进行使用。

首先先全局安装一个<强> express-generator 强,命令为:

<节>
 npm  install  -g  express-generator 
  

然后使用<强> express-generator 快速搭建一个<强> 强表达项目,命令为:

<节>
 express  express_demo 
  

然后进入项目并且安装<强> 强表达项目所需依赖,命令为:

<节>
 cd  express_demo ,,, npm 安装
  

到这里项目搭建成功了,我们可以看看项目结构:

 jsonwebtoken如何生成与解析牌”> </p> <p>首先在<强> util </强>下创建<强> common.js </>强,该文件主要放置常用公共方法,这里我目前只有两个公共方法:<强> paramAll </强>(用来获取前端传来的参数),<强> encryPassword </>强(对密码拼接字符串进行<强> MD5 </强>加密)。</p> <p> <img src=

可以看到第一行导入<>强加密依赖,<强> MD5 加密需要使用到这个包,所以我们先装下这个依赖,命令为:

<节>
 npm  install ——save-dev 加密
  

然后在<强> util 下创建<强>引导装载程序。js 强,主要封装几个全局函数,用来输出测试数据以及给前端返回数据使用。

 jsonwebtoken如何生成与解析令牌

然后打开<强>配置。js 强,配置<强> jsonwebtoken 生成<强>标记所需的秘密<强> ,<强> 为秘密加密密钥,不能泄露给其他人使用。

 jsonwebtoken如何生成与解析令牌

接下来步入正轨了,我们一直说使用<强> jsonwebtoken 生成<强>标记强,那当然我们首先安装下<强> jsonwebtoken 强,命令为:

<节>
 npm  install ——save-dev  jsonwebtoken 
  

接下来我们来写个接口是线下<强>标记强的生成,我们接口实现在 <强>路由器下实现。首先打开<强>路由器/用户。js, 在文件顶部先导入我们刚才编写的几个文件:

 jsonwebtoken如何生成与解析令牌

接下来我们实现接口,将用户的基本信息结合我们设置的密钥<强>秘密强通过<强> jsonwebtoken 生成<强>标记:

 jsonwebtoken如何生成与解析令牌

通过我们刚才封装的<强> paramAll <强>()强进行过去前端的传参,密码是隐私数据所以通过封装好的<强> encryPassword() 强进行<强> MD5 加密。然后结合<强>秘密强通过<强> jsonwebtoken。号(信息、秘密、期权)强进行加密生成<强>标记强。我们来看下接口效果:

 jsonwebtoken如何生成与解析牌”> </p> <p>可以看到我们成功将用户信息转化为<强>标记</>强了,接下来我们来看看如何反向解析出用户数据,解析<强>标记</强>使用方法:<br/> </p> <节> <pre> jsonwebtoken.verify (secret ,令牌,回调)<h2 class=jsonwebtoken如何生成与解析令牌