1、打开文件pom.xml,在dependencies标签中加入以下内容,保存后点击右上角的maven重加载按钮
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.10.3</version>
</dependency>
2、打开菜单File-Settings-Easy Code,从本地导入,选择模板文件OK,选择COVER,OK完成导入。
3、点击右侧Database,打开第5步中连接的数据库,找到要生成代码的表,在表名上右键,Easy Code,Generate Code,打开如下对话框,选择Package,选中All,统一配置,弹框选是,OK。
4、打开resources-mapper-UseDao.xml,其中加入如下代码段
<!-- 登录 -->
<select id="login" resultMap="UserMap">
select
<include refid="Base_Column_List" />
from user
where username = #{username} and password = #{password}
</select>
添加后如图所示
5、在java-com.xx.xx.dao中打开UserDao.java文件,其中加入以下代码片段
User login(String username, String password);
添加后如下图所示:
6、在java-com.xx.xx.service中打开UserService.java文件,其中加入以下代码片段
User login(String username, String password);
添加后如下图所示:
7、在java-com.xx.xx.service.impl中打开UserServiceImpl.java文件,其中加入以下代码片段
@Override
public User login(String username, String password) {
return this.userDao.login(username,password);
}
添加后如下图所示:
8、在java-com.xx.xx.controller中打开UserController.java文件,其中加入以下代码片段
/*登录*/
@GetMapping("/login")
public Result selectToLogin(@RequestBody User _user) {
User user = userServiceImpl.login(_user.getUsername(), _user.getPassword());
if (user != null) {
Map<String, Object> data = new HashMap<>();
Map<String,Object> map = new HashMap<>();
data.put("username", _user.getUsername());
map.put("id",user.getId());
map.put("username",user.getUsername());
map.put("password",user.getPassword());
data.put("token", JWTUtils.token(map));
return new Result<>(true,StatusCode.OK,"登录成功",data);
}
else {
return new Result<>(true,StatusCode.ERROR,"账号密码错误或用户不存在");
}
}
@GetMapping("/getMessage")
public String getMessage(HttpServletRequest request){
String token = request.getHeader("token");
int id= JWTUtils.getId(token);
System.out.println(id);
return "你已通过验证";
}
添加后如下图所示:
9、测试登录
返回
10、在需要token验证的接口上加入注解@LoginToke,则访问该接口需要token才能访问
11、在请求头部加入
"token":"eyJ0eXAiOiJqd3QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0b2tlbiIsImlzcyI6IndlY2FyIiwiYm9keSI6eyJwYXNzd29yZCI6IjEyMyIsImlkIjoxLCJ1c2VybmFtZSI6ImFiYyJ9LCJleHAiOjE2ODMxNjEwMTIsImlhdCI6MTY4MjU1NjIxMn0.lPbe3GAIGqNtX10bbxolTXa6SlhRkmGr_bMmk66VnCE"
再次请求成功获取数据