前后端分离下的token机制

Java Web 专栏收录该内容
20 篇文章 1 订阅

一、 什么是 token ?

Token 是在服务端产生的,如果前端使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端会返回 Token 给前端。前端可以在每次请求的时候带上 Token 证明自己的合法地位。

二、token 的适用场景

登录:

 业务请求:

Token 过期,刷新 Token:

 三、token的使用

1.创建:token 的实质其实就是一个唯一标识的字符串,一般来说由UUID生成,或者一些复杂的可以由时间戳或者用户的ID根据某一算法进行加密生成,取到token之后再进行解密,取出用户的ID。我这里以简单的UUID进行举例:

String token = UUID.randomUUID().toString();// 生成token

2.保存:很多常见的做法是将token保存进数据库或者缓存,但是放进数据库会严重消耗服务器资源,所以本人不建议这样做,我比较喜欢把token 存进redis缓存里,最主要的好处就是简单易操作,还大大加快了数据查询速度,我把 redis 理解为一张庞大的Map 表。

3.将 token 添加到响应头

response.setHeader("Access-Control-Expose-Headers",
				"Cache-Control,Content-Type,Expires,Pragma,Content-Language,Last-Modified,token");
response.addHeader("token", token);

4.从请求头里取出token

response.getHeader("token");

  • 6
    点赞
  • 0
    评论
  • 46
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页

打赏作者

西瓜不甜柠檬不酸

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值