当前位置:网站首页>12-security退出.md
12-security退出.md
2022-08-03 00:34:00 【张 邵】
我们只需要定义一个登出接口,然后获取SecurityContextHolder中的认证信息,删除redis中对应的数据即可。
/** * @Author 三更 B站: https://space.bilibili.com/663528522 */
@Service
public class LoginServiceImpl implements LoginServcie {
@Autowired
private AuthenticationManager authenticationManager;
@Autowired
private RedisCache redisCache;
@Override
public ResponseResult login(User user) {
UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(user.getUserName(),user.getPassword());
Authentication authenticate = authenticationManager.authenticate(authenticationToken);
if(Objects.isNull(authenticate)){
throw new RuntimeException("用户名或密码错误");
}
//使用userid生成token
LoginUser loginUser = (LoginUser) authenticate.getPrincipal();
String userId = loginUser.getUser().getId().toString();
String jwt = JwtUtil.createJWT(userId);
//authenticate存入redis
redisCache.setCacheObject("login:"+userId,loginUser);
//把token响应给前端
HashMap<String,String> map = new HashMap<>();
map.put("token",jwt);
return new ResponseResult(200,"登陆成功",map);
}
@Override
public ResponseResult logout() {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
LoginUser loginUser = (LoginUser) authentication.getPrincipal();
Long userid = loginUser.getUser().getId();
redisCache.deleteObject("login:"+userid);
return new ResponseResult(200,"退出成功");
}
}
边栏推荐
- Introduction to resubmit Progressive Anti-Duplicate Submission Framework
- 为了面试阿里,熬夜肝完这份软件测试笔记后,Offer终于到手了
- 【遥控器开发基础教程4】疯壳·开源编队无人机-SPI(OLED)
- ASP.NET网络版进销存管理系统源码【源码免费分享】
- php一维数组合并
- 流程控制for和while循环语句
- Auto.js special positioning control method cannot perform blocking operations on the ui thread, please use setTimeout instead
- 一套开源的可快速搭建自己的物联网/智能家居系统源码
- Heartwarming AI Review (1)
- 年近30 ,4月无情被辞,想给划水的兄弟提个醒...
猜你喜欢
关于地图GIS开发事项的一次实践整理(上)
Auto.js special positioning control method cannot perform blocking operations on the ui thread, please use setTimeout instead
async-await
优秀论文以及思路分析01
NLP commonly used Backbone model cheat sheet (1)
中科磁业IPO过会:年营收5.5亿 吴中平家族持股85%
淘宝商品销量接口/淘宝商品销量监控接口/商品累计销量接口代码对接分享
npm运行项目dependencies were not found: core-js/modules/es6.array.fill
【飞控开发高级教程1】疯壳·开源编队无人机-飞控整机代码走读、编译与烧写
风电场运营实践 | 麒麟信安助力国华投资山东公司集控中心实现安全智慧化运营
随机推荐
吴恩达深度学习deeplearning.ai——第一门课:神经网络与深度学习——第二节:神经网络基础(上)
做快乐的事情
UPC2022暑期个人训练赛第23场(Credit Card Payment)
从 npm 切换到 pnpm,真香!
【mysql知识点整理】--- order by 、group by 出现Using filesort原因详解
async-await
浅谈I2C知识
升级版的冒泡排序:鸡尾酒排序(快乐小时排序)
精心整理16条MySQL使用规范,减少80%问题,推荐分享给团队
定了!8月起,网易将为本号粉丝提供数据分析培训,费用全免!
从一文中了解SSRF的各种绕过姿势及攻击思路
通力传动递交注册:年营收4.7亿 实控人项献忠家族色彩浓厚
【遥控器开发基础教程5】疯壳·开源编队无人机-SPI(2.4G 双机通信)
软件测试从业多年,自认为技术不错,裸辞:一晃 ,失业3个月了~
并查集总结
聊聊 Nacos
2022/8/2 考试总结
【图像分类】2021-EfficientNetV2 CVPR
php一维数组合并
8 个常用的 Wireshark 使用技巧,一看就会