这篇文章主要讲解了“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 安装节>
到这里项目搭建成功了,我们可以看看项目结构:
可以看到第一行导入<>强加密强>依赖,<强> MD5 强>加密需要使用到这个包,所以我们先装下这个依赖,命令为:
<节>npm install ——save-dev 加密节>
然后在<强> util 强>下创建<强>引导装载程序。js >强,主要封装几个全局函数,用来输出测试数据以及给前端返回数据使用。
然后打开<强>配置。js >强,配置<强> jsonwebtoken 强>生成<强>标记强>所需的秘密<强> 强>,<强> 强>为秘密加密密钥,不能泄露给其他人使用。
接下来步入正轨了,我们一直说使用<强> jsonwebtoken 强>生成<强>标记>强,那当然我们首先安装下<强> jsonwebtoken >强,命令为:
<节>npm install ——save-dev jsonwebtoken节>
接下来我们来写个接口是线下<强>标记>强的生成,我们接口实现在强> <强>路由器下实现。首先打开<强>路由器/用户。js, >在文件顶部先导入我们刚才编写的几个文件:
接下来我们实现接口,将用户的基本信息结合我们设置的密钥<强>秘密>强通过<强> jsonwebtoken 强>生成<强>标记强>:
通过我们刚才封装的<强> paramAll 强> <强>()>强进行过去前端的传参,密码是隐私数据所以通过封装好的<强> encryPassword() >强进行<强> MD5 强>加密。然后结合<强>秘密>强通过<强> jsonwebtoken。号(信息、秘密、期权)>强进行加密生成<强>标记>强。我们来看下接口效果: