文章目录
- 1、需求提出
- 2、应用场景
- 3、解决思路
- 4、注意事项
- 5、完整代码
-
- 第一步:后端获取当前用户信息
- 第二步:前端获取当前用户信息
- 5、运行结果
- 6、总结
1、需求提出
在微服务架构中,获取当前用户的登录信息是开发常见的需求。无论是后端处理业务逻辑,还是前端展示用户相关信息,都需要通过合适的方式获取当前登录的用户身份信息。
2、应用场景
- 后端权限控制:根据当前用户的信息执行不同的权限判断和业务逻辑。
- 前端展示:展示当前用户的个人信息,例如用户名、头像等。
- 多角色支持:根据不同角色的信息,返回不同的服务内容或界面。
3、解决思路
- 后端:使用 SecurityUtils 获取当前用户信息,包括用户名、用户ID、以及完整的登录信息。
- 前端:通过 Vuex 状态管理来获取当前登录的用户名。
4、注意事项
- 安全性:确保用户信息在存储和传输过程中加密,防止敏感数据泄露。
- 前后端同步:前端和后端获取的用户信息要保持一致,避免数据不同步问题。
- 权限管理:获取到的用户信息可以用于权限控制,因此要确保系统中角色和权限的正确配置。
5、完整代码
第一步:后端获取当前用户信息
在后端代码中,使用 SecurityUtils 工具类可以方便地获取当前用户的各种信息:
// 获取当前用户名
String username = SecurityUtils.getUsername();
// 获取当前用户ID
Long userid = SecurityUtils.getUserId();
// 获取当前的登录用户对象
LoginUser loginUser = SecurityUtils.getLoginUser();
💡 说明:
- SecurityUtils.getUsername() 用于获取当前登录的用户名。
- SecurityUtils.getUserId() 获取当前登录用户的ID。
- SecurityUtils.getLoginUser() 获取当前登录用户的详细信息对象。
第二步:前端获取当前用户信息
在 Vue 前端中,通过 Vuex 状态管理可以获取当前用户的基本信息:
// 获取当前用户名
var username = this.$store.state.user.name;
💡 说明:
- this.$store.state.user.name 获取当前存储在 Vuex 中的用户名信息。
- 请确保在用户登录时将相关信息保存到 Vuex 的 user 状态中。
5、运行结果
- 后端测试:
调用后端接口时,可以通过 SecurityUtils 获取当前用户的登录信息,确保后端服务根据用户信息执行正确的权限校验和业务逻辑。 - 前端展示:
前端通过 Vuex 获取当前用户的用户名或其他信息,可以在页面中动态展示,例如在导航栏中显示用户的名字,或者根据用户的角色展示不同的界面内容。
6、总结
通过 SecurityUtils 工具类,后端能够轻松获取当前用户的详细信息;而前端则通过 Vuex 管理用户的状态,确保前后端用户信息同步。通过这种方式,若依微服务能够方便地在不同层级处理用户信息,满足权限控制和动态展示的需求。