NodeJS中使用token

NodeJS中使用token,第1张

什么是Token?

Token指访问资源的凭据,是一种身份认证的方式,它是解决跨域认证的最流行的一种方式。

为什么用Token?

以前较为流行的是通过session去做身份认证,session是通过服务器中保存会话数据来做身份认证,这种方式会导致在高并发中服务器压力过大的情况,还有就是,如果是服务返坦渣器集群,那么就需要这些服务器session共享。

Token不在服务器中保存会话数据,而是保存在客户端。每次请求的headers中存入Token,在服务器中判断Token的有效性,是否可以访问资源。

传统Token和JWT的区别

内部包含有签名算法、Token类型,然后通过base64url算法转成字符串

内部包含JWT标准数据和自定义数据,然后通过base64url算信州法转成字符串

JWT标准数据常见的有:

可选择性使用以上标准数据

注意:由于JWT是默认不加密的,所以在这边不要存敏感信息

这部分是对前两部分的签名,防止数据的篡改。

secret是服务器端保存的密钥,只有服务器端知道,再使用header中所指定的签名算法对上面的俩部分进行签名,按照以下公式生成签名。

算出签名之后,把三部分通过.分隔开返回给漏悄用户就行了

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTAsIm5hbWUiOiLlvKDkuIkiLCJhZ2UiOjE2LCJpYXQiOjE1ODgxMzkzMjMsImV4cCI6MTU4ODEzOTMzM30.WzZp_aNgiw4iTsX7buxMhZe0z0e94Ve6ImEZ8L8L78c

每次客户端的请求都需要带上这个token,一般是把token写入到请求的headers中

通过npm包jsonwebtoken来完成token的生成和验证

1. 最近得到一个新需求,需要在后台管理页面加上用户权限控制,通过后台放在cookie里面的token进行判断;

2. 获取cookie里面的token:

    2.1 我们在用vue.js里面的index.html写一个握拆全局的函数改皮明:

       核告    

 3. 这样我们通过传入cookie的key名就可以获取到后面的token了,如:


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12138097.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存