登录鉴权是 Web 应用中非常重要的一环,常见的三种鉴权方式是 token、JWT 和 session,下面对它们进行实战分享。1:Token 鉴权Token 鉴权是基于 Token 的一种鉴权方式,通常使用 RESTful API 来进行数据交互。
用户想要用某款APP就必须给她一些权限,这就叫授权,然而授权这种行为一般在指定时间只会触发一次,因为多了,会影响用户体验度,这个时候就出现了凭证,也就是我们经常说的cookie session token jwt oauth2等,下面我们一一说明。
同样也是由于Token的无状态性质,也导致了它最大的缺点就是,后端在一个Token的有效期内删除了Token或者是修改了其权限,那么这个删除操作或者是权限修改操作是无法立即生效,一般需要重新授权,或者是等到有效期过了之后才会生效。
一、JWT简介和使用场景二、JWT编码三、JWT解码四、JWT生成token验证一、 JWT简介和使用场景JWT全称为Json Web Token,用以Json的方式传输信息,使用秘钥(HMAC算法)/RSA/ECDSA的公钥和私钥进行签名。
因为我们不能通过http协议知道是哪个用户发出的请求,所以如果要知道是哪个用户发出的请求,那就需要在服务器保存一份用户信息,然后在认证成功后返回cookie值传递给浏览器,那么用户在下一次请求时就可以带上cookie值,服务器就可以识别是哪个用户发送的请求,是否已认证,是否登录过期等等。
在设计no session系统时,遇到了有两种可选方案:jwt与token+redis。JWT: 生成并发给客户端之后,后台是不用存储,客户端访问时会验证其签名、过期时间等再取出里面的信息(如username),再使用该信息直接查询用户信息完成登录验证。