注册后不能打印权限列表
来源:5-7 完成注册超级管理员功能(移动端)
视线模糊
2023-02-13
视频讲解中可打印权限列表,但是我自己测试,自己的没有打印出权限列表
本机测试注册,能够获取昵称和用户名,但是没有打印出权限列表
后台设置断点查看,是有权限列表的

管理员创建员工证账号之后,你可以从你的个人邮箱中获得注册邀请码
<button class=“register-btn” open-type=“getUserInfo” @tap=“register()”>执行注册
</view>
package com.example.emos.wx.controller;
import com.example.emos.wx.common.util.R;
import com.example.emos.wx.config.shiro.JwtUtil;
import com.example.emos.wx.controller.form.LoginForm;
import com.example.emos.wx.controller.form.RegisterForm;
import com.example.emos.wx.service.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.Objects;
import java.util.Set;
import java.util.concurrent.TimeUnit;
@RestController
@RequestMapping("/user")
@Api(“用户模块web接口”)
public class UserController {
// 使用构造方法注入以下三个类
private final RedisTemplate redisTemplate;
private final UserService userService;
private final JwtUtil jwtUtil;
public UserController(RedisTemplate redisTemplate, UserService userService, JwtUtil jwtUtil) {
this.redisTemplate = redisTemplate;
this.jwtUtil = jwtUtil;
this.userService = userService;
}
@Value("${emos.jwt.cache-expire}")
private int cacheExpire;
@PostMapping("/login")
@ApiOperation("登录系统")
public R login(@Valid @RequestBody LoginForm form) {
int id = userService.login(form.getCode());
String token = jwtUtil.createToken(id);
Set<String> permsSet = userService.searchUserPermissions(id);
saveCacheToken(token, id);
// return Objects.requireNonNull(R.ok(“登录成功”).put(“token”, token)).put(“permission”, permsSet);
return R.ok(“登陆成功”).put(“token”, token).put(“permission”, permsSet);
}
@PostMapping("/register")
@ApiOperation("注册用户")
public R register(@Valid @RequestBody RegisterForm form) {
int id = userService.registerUser(form.getRegisterCode(), form.getCode()
, form.getNickname(), form.getPhoto());
String token = jwtUtil.createToken(id);
// Set集合可以去除重复元素
Set permsSet = userService.searchUserPermissions(id);
saveCacheToken(token, id);
return R.ok(“用户注册成功”).put(“token”,token).put(“permission”,permsSet);
}
// 保存缓存token的方法
private void saveCacheToken(String token,int userId) {
redisTemplate.opsForValue().set(token, userId + “”, cacheExpire, TimeUnit.DAYS);
}
}
1回答
-
神思者
2023-02-13
你数据库里面的用户是超级管理员角色,root是最高权限了,你给他叠加其他角色就能看到对应的权限了。
00
相似问题