废话:
这段时间涉及到一个项目,老师第一次认真讲token,入坑很浅,花了一天算搞懂了一点点,做个笔记的目的是防止自己下次忘记,肯定有很多不完整的地方,可以通过评论区告诉我哈!
接下来的整个文章都是在讲述token的创建和使用。
前言:
整篇笔记实现了“登录”和“修改”两个方法,当用户没有通过“登录”方式获得token时,在执行“修改”方法时会报错,只有获得了登录方法给的token,并将token加入到“修改”方法请求的头部分,才能完成修改。
整体思维逻辑是写一个token认证方法,再结合mvc写一个过滤器,过滤器实现对所有网页进行过滤,并实现token认证方法。最后写两个注解,当某个方法上面的注解为@PassToken,则代表该方法不需要token令牌认证,直接过,而注解为@UserLoginToken的方法则需要进入到token认证方法中进行认证,如果认证通过则执行,不通过则不执行下面的方法。
0.引入依赖
要实现token令牌加密需要引入jwt依赖,要实现过滤就要引入web依赖,这里面我将我所用到的依赖附上,仅供参考。
在pom.xml文件中添加maven依赖,添加后点击右侧“maven”,刷新下载即可
<!--引入jwt依赖-->
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.4.1</version>
</dependency>
<!-- 引入mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.1</version>
</dependency>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.16</version>
<optional>true</optional>
</dependency>
<!-- web依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
1.基本结构解释
这里我已经写了一个实体类,对应数据库中的数据表“adminfo”,在数据表中有一些测试数据,这些数据包括id、密码、用户名
在“entity”包中,对应创建了它的实体类,取名“Admin”
我们使用mybatis连接了数据库,并在“Mapper.xml”文件中编写了三个方法,分别是“通过id和密码登录”、“通过id来修改用户名”、“通过id来得到密码”。
这些都是为了测试使用,自己的具体的业务逻辑已自己的实际需要为准。
<!--登录-->
<select id="login" resultType="com.example.entity.Admin">
select * from adminfo where