什么是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了,如:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)