JWT(json web token)。
1,jwt(全称json web token)。主要是用来生成token的,token是一串加密过的字符串。
流程是这样的
- 用户使用用户名密码请求服务器
- 服务器进行验证用户信息,并生成一个token存在数据库中
- 服务器通过验证并把token发送给用户
- 客户端存储token,一般存在local Storage。并在每次请求时附加这个token值,可以以参数形式加在ajax的请求头或者请求体中
- 服务器验证token,token验证与数据库中存的token比较,验证通过,则做业务逻辑处理并返回数据
好处是这样的
- 支持跨域访问: Cookie是不允许垮域访问的,这一点对Token机制是不存在的,前提是传输的用户认证信息通过HTTP头传输
- 更适用于移动应用: 如果客户端是一个iOS, Android时,Cookie是不被支持的,这时采用Token认证机制就会简单得多。
- 上手简单:贼简单的那种。下面细说。
- 你猜
2,实现步骤(看了下别的博客的介绍,把简单的步骤搞的很复杂,所以自己重新捋了一遍)
- pom文件中添加依赖
<!-- 添加依赖JwtPermission --> <dependency> <groupId>com.github.whvcse.JwtPermission</groupId> <artifactId>jwtp-spring-boot-starter</artifactId> <version>2.0.2</version> </dependency>
- 添加相应的实体、数据库建对应的表。各个表的关联关系应该从表名的字面意思上就可以了解,实在不了解的话可以看下面的建表语句中有字段备注介绍(前五张sys相关的表需要创建相应的实体,token相关的表只需要建表就好了不需要创建实体)
1,系统用户表:sys_user
2,系统角色表:sys_role
3,系统权限表:sys_authorities
4,用户角色关联表:sys_user_role
5,角色权限关联表:sys_role_authorities
6,根据jar包中的代码建oauth_token表和oauth_token_key表。
https://download.csdn.net/download/nienianzhi1744/11878539(具体见建表sql和表关系说明都在这个链接里)
3. 登录的时候校验用户名和密码,通过后创建token存到数据库并返回给客户端。
// 几个公司私有的