Express 双Token认证以及实现无感刷新Token

相信兄弟们在写项目时,都必须要考虑用户信息安全的一个问题,那么这时候大多数兄弟选择使用token来保护用户信息。

但是又对token所设置的时间拿捏不准

        token设置的时间长了,那么我们设置token的意义也就消失了,数据还是会被不法分子拦截、劫持。

        token设置的时间短了,虽然说保障了我们用户的信息安全,但是在用户使用的过程中,token已过期就会需要我们用户重新登录,造成用户的体验感很差。

在这时候我们就要考虑,如何在确保用户信息安全的情况下,让用户有一个良好的体验呢?

如果我们设置两个token(一个长token,一个短token)是不是就可以解决这个问题了呢?

也就是本次要讲的双token(双JWT)认证了。

双token的原理也很简单:

通过定义两个token,长token(Refresh Token)和短token(Access Token)
在用户登录完成之后后端则会生成双token,并且将短token(Access Token)返回到前端用于数据的请求。
而长token(Refresh Token)则会留在后端,用于短token(Access Token)过期之后获取新的短token。
双token认证主要就是为了解决:

        1、设置单token时,不安全容易被劫持,导致用户信息泄露的问题。

        2、单token过期用户需要重新登录,降低用户体验。

        3、降低对服务器的负载等问题的。

那么说了这么多,又如何实现双token认证呢?

1、在我们使用express后端创建token时,首先就是下载jsonwebtoken的node包

npm i jsonwebtoken

 2、接下来呢就是在我们需要使用jsonwebtoken的文件中,导入我们的jsonwebtoken包

       然后就是在我们新创建的token.js文件中导入我们下载好的包

const jwt = require('jsonwebtoken')

3、当我们基础配置完成之后就该,创建我们的token了 

 首先就是定义三个常量方便后续定义token使用

        这里我们的密钥是随便输的,在我们实际的开发中,可以根据我们的需求传入

     其次就是根据我们定义好的常量,创建两个token

4、创建完双token之后,也就到了我们最重要的一步,双token的验证

        首先是短token的一个认证

这是长token的认证

4、当我们的token认证配置完成后一定不能忘了最重要的一步,那就是将属性和方法导出

这样就完成了我们token.js的配置了,后续在使用中导入我们的token.js文件直接使用方法即可,这就是双Token认证实现无感刷新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值