注册后不能打印权限列表

来源: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是最高权限了,你给他叠加其他角色就能看到对应的权限了。

0
0

SpringBoot 在线协同办公小程序开发 全栈式项目实战

未来趋势型业务 + 前后端综合技术栈 + 惊艳的细节打磨

1812 学习 · 1924 问题

查看课程