项目功能介绍:https://www.bilibili.com/video/BV18Z4y1r7Ut
技术栈:
- springboot微服务框架
- MySQL8数据库
- mybatis-plus
- pagehelper+Mybatis 分页
- hutool 工具
- fastjson 序列化
- Redis 缓存
- shiro 安全框架
- easy-captcha 验证码
- aliyun-oss 对象存储
- kumo 分词
项目结构图:
即用户登录并赋予权限
Controller层,用户登录接口(用户名、密码、验证码)
@PostMapping("/toLogin")
public RespBean userLogin(@RequestBody HashMap<String, String> params, HttpSession session) {
String username = params.get("username");
String password = params.get("password");
String verify_code = params.get("verify_code");
//1、比较验证码
String session_verify = (String) session.getAttribute("verify_code");
log.warn("session_verify===>" + session_verify);
if (StringUtils.hasLength(verify_code) && session_verify.equalsIgnoreCase(verify_code)) {
try {
Subject subject = SecurityUtils.getSubject();
subject.login(new UsernamePasswordToken(username, password));
//从session中获取认证的TUser对象 返回给前端
TUser user = (TUser) session.getAttribute("USER_SESSION");
return RespBean.success("ok", user);
} catch (UnknownAccountException e) {
throw new LoginException("用户名不存在!");
} catch (IncorrectCredentialsException e) {
throw new LoginException("密码错误!");
} catch (Exception e) {
throw new LoginException(e.getMessage());
}
} else {
throw new LoginException("验证码错误!");
}
}
1、首先比较验证码是否相同
- Vue-Cli3 + vue-router + vuex
- axios 网络请求
- element-ui
- echarts 图表
- hover.css hover样式
- moment.js 时间日期格式化
- nprogress 进度条
- qs 序列化和反序列化(URL查询字符串)
- vue-lazyload 图片懒加载
- vue-particles 粒子特效
- wangeditor 富文本编辑器
- less@4.1.1 + less-loader@6.0.0 写Css样式
- clipboard 粘贴板
- codemirror 在线编辑代码
- screenfull 全屏
- vue-count-to 动态数字
- mavon-editor markdown文本编辑器
该功能未完成(后续完善...)
这部分是elAdmin框架自带的,小伙伴们写代码可以参考规范哦
![]() |
![]() |
![]() |
![]() |
![]() |
- Vue-Cli3 + vue-router + vuex
- axios 网络请求
- element-ui
- echarts 图表
- hover.css hover样式
- moment.js 时间日期格式化
- nprogress 进度条
- qs 序列化和反序列化(URL查询字符串)
- vue-lazyload 图片懒加载
- vue-particles 粒子特效
- wangeditor 富文本编辑器
- less@4.1.1 + less-loader@6.0.0 写Css样式
注册登录演示: