node使用jwt生成token,这个token在后端保存在哪里? 您所在的位置:网站首页 jwt如何生成token node使用jwt生成token,这个token在后端保存在哪里?

node使用jwt生成token,这个token在后端保存在哪里?

#node使用jwt生成token,这个token在后端保存在哪里?| 来源: 网络整理| 查看: 265

我之前也不懂,也很好奇这个token怎么保存,还差点想搞个redis存储这个token。

后来查阅资料才知道,原来这个token,后端根本不需要保存。只需要客户端保存,甚至你让用户写纸条揣兜里都可以!

先说说要后端要保存token或者session的做法是怎么样的:

首先是用户登录,当我们校验完用户身份后,我们在缓存里或者数据库里的登录表里写上用户的信息和过期时间,然后导出一个登录id给用户使用。当用户再次访问时,带上这个登录id上来,你用这个id从登录表里查到用户信息进行校验,然后进行业务。

诶,那现在我不想维护一个登录表了,要怎么搞?

简单呀,直接把用户信息发给客户端,让客户端每次把用户信息都带过来,这样请求一进来,连表都不用查,直接就知道是哪个用户在请求。

但是这样子,用户的信息都曝光了,那些中间人呀,最喜欢这种耿直请求了,直接拿个凳子坐在你服务器端口门口,坐个几天,你数据库里的用户全家老小都被别人扒个清清楚楚。盗信息还是小的,就怕伪造信息,比如伪造你的信息来干些“小小的坏事”。

这样肯定不行,那怎么办?

加个密呗,简单点的能自己解开就可以了。复杂点搞个私钥自己在服务器里面玩解密加密。这样,中间人老哥们拿到密文,一时半会也解不开,破解成本也高,大概率大大咧咧地走了。留下一小部分有备(KPI)而来的老哥还在苦苦地想方设法破解你的密文。

这样你一解密,你就拿到用户信息了,同样的,你把过期时间也写进密文里面,遇到过期就401跳登录页。这样,一个不需要后端存储登录凭证的方案就出炉咯。

这就是jwt的原理,人家还详细地做了各种规范和约定,像什么小数点分割内容啊,加密的方法啊,内容一定要json啊等等,这些还是让你自己探索吧。

顺带提一句,日常开发中,应该会有后端老哥把用户信息写入jwt里面,当某个业务需要用户信息时,老哥嫌麻烦,直接把私钥给你,让你自己解token那数据。现在你知道了jwt原理,你还敢接老哥的私钥吗?你把你家的钥匙都拿出来送人了,特别是送给前端,哪天就有一堆人拿着复制出来的钥匙想要来你家康康咯。

别哈。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有