diff --git a/README.md b/README.md index dd4cc3f7..7c720b9a 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,6 @@

- [![star](https://gitee.com/veal98/Echo/badge/star.svg?theme=dark)](https://gitee.com/veal98/Echo/stargazers) [![fork](https://gitee.com/veal98/Echo/badge/fork.svg?theme=dark)](https://gitee.com/veal98/Echo/members) [![GitHub stars](https://img.shields.io/github/stars/Veal98/Echo?logo=github)](https://github.com/Veal98/Echo/stargazers) @@ -50,6 +49,39 @@ Echo 是一套前后端不分离的开源社区系统,基于目前主流 Java - Github Pages:[https://veal98.github.io/Echo](https://veal98.github.io/Echo) - Gitee Pages:[https://veal98.gitee.io/echo](https://veal98.gitee.io/echo) +## 📖 配套教程 + +想要自己从零开始实现这个项目或者深入理解的小伙伴,可以扫描下方二维码关注公众号『**飞天小牛肉**』回复 `Echo` 获取配套教程,订阅话题 [Echo 学习教程](https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzI0NDc3ODE5OQ==&action=getalbum&album_id=1744497649518493697&scene=173&from_msgid=2247485209&from_itemidx=3&count=3&uin=&key=&devicetype=Windows+10+x64&version=63010043&lang=zh_CN&ascene=1&session_us=gh_089c9f6e334b&fontgear=2) 第一时间获取更新。本套教程不仅会详细解释本项目涉及的各大技术点,还会汇总相关的常见面试题,目前尚在更新中。 + + + +并推荐我的开源教程类项目 [『 CS-Wiki 』](https://gitee.com/veal98/CS-Wiki),Gitee 推荐项目,目前已累积 1.5k star: 致力打造完善的 Java 后端知识体系,不仅仅帮助各位小伙伴快速且系统的准备面试(秋招/社招),更指引学习的方向。 + +### 序章 + +- [必读:Echo 项目的 README](https://mp.weixin.qq.com/s/iiukwRNW1-my1q6UjYl4iw) +- [Echo 项目结构分析](https://mp.weixin.qq.com/s/dZqSB0EN5-rmGQeG3Lx2jA) +- [Echo 数据库表是如何设计的](https://mp.weixin.qq.com/s/DG549DzLy3NhXwpsOWaXYA) +- [Echo 技术选型分析](https://mp.weixin.qq.com/s/tTBzyMklFtBfkyvuh8W0Nw) + +### 部署篇 + +- [Echo 在 Windows 环境下的部署](https://mp.weixin.qq.com/s/ZgYGqLB5_rfCXNrW9jqgtQ) +- [Echo 在 Linux 服务器上的部署](https://mp.weixin.qq.com/s/q9X5sJv7mtPaSApZB0PxPA) + +### 业务逻辑篇 + +- [Echo 的注册功能是怎么做的](https://mp.weixin.qq.com/s/SC2FRPrVUbNw5ySHopOpHQ) +- [Echo 的登录认证和授权是怎么做的](https://mp.weixin.qq.com/s/DjGvuNYu5Fjvw3Gjha4ulw) + +### 技术要点篇 + +- 代更 + +### 常见面试题 + +- 待更 + ## 💻 核心技术栈 后端: @@ -445,38 +477,6 @@ double score = Math.log10(Math.max(w, 1)) ![](https://gitee.com/veal98/images/raw/master/img/20210208173636.png) -## 📖 配套教程 - -想要自己从零开始实现这个项目或者深入理解的小伙伴,可以扫描下方二维码关注公众号『**飞天小牛肉**』回复 `Echo` 获取配套教程,订阅话题 [Echo 学习教程](https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzI0NDc3ODE5OQ==&action=getalbum&album_id=1744497649518493697&scene=173&from_msgid=2247485209&from_itemidx=3&count=3&uin=&key=&devicetype=Windows+10+x64&version=63010043&lang=zh_CN&ascene=1&session_us=gh_089c9f6e334b&fontgear=2) 第一时间获取更新。本套教程不仅会详细解释本项目涉及的各大技术点,还会汇总相关的常见面试题,目前尚在更新中。 - - - -并推荐我的开源教程类项目 [『 CS-Wiki 』](https://gitee.com/veal98/CS-Wiki),Gitee 推荐项目,目前已累积 1.5k star: 致力打造完善的 Java 后端知识体系,不仅仅帮助各位小伙伴快速且系统的准备面试(秋招/社招),更指引学习的方向。 - -### 序章 - -- [必读:Echo 项目的 README](https://mp.weixin.qq.com/s/iiukwRNW1-my1q6UjYl4iw) -- [Echo 项目结构分析](https://mp.weixin.qq.com/s/dZqSB0EN5-rmGQeG3Lx2jA) -- [Echo 数据库表是如何设计的](https://mp.weixin.qq.com/s/DG549DzLy3NhXwpsOWaXYA) -- [Echo 技术选型分析](https://mp.weixin.qq.com/s/tTBzyMklFtBfkyvuh8W0Nw) - -### 部署篇 - -- [Echo 在 Windows 环境下的部署](https://mp.weixin.qq.com/s/ZgYGqLB5_rfCXNrW9jqgtQ) -- [Echo 在 Linux 服务器上的部署](https://mp.weixin.qq.com/s/q9X5sJv7mtPaSApZB0PxPA) - -### 业务逻辑篇 - -- [Echo 的注册功能是怎么做的](https://mp.weixin.qq.com/s/SC2FRPrVUbNw5ySHopOpHQ) - -### 技术要点篇 - -- 代更 - -### 常见面试题 - -- 待更 - ## 📞 联系我 有什么问题也可以添加我的微信,记得备注来意:格式 (学校或公司 - 姓名或昵称 - 来意) diff --git a/docs/README.md b/docs/README.md index d5959295..a2a847b4 100644 --- a/docs/README.md +++ b/docs/README.md @@ -24,6 +24,39 @@ Echo 是一套前后端不分离的开源社区系统,基于目前主流 Java - Github Pages:[https://veal98.github.io/Echo](https://veal98.github.io/Echo) - Gitee Pages:[https://veal98.gitee.io/echo](https://veal98.gitee.io/echo) +## 📖 配套教程 + +想要自己从零开始实现这个项目或者深入理解的小伙伴,可以扫描下方二维码关注公众号『**飞天小牛肉**』回复 `Echo` 获取配套教程,订阅话题 [Echo 学习教程](https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzI0NDc3ODE5OQ==&action=getalbum&album_id=1744497649518493697&scene=173&from_msgid=2247485209&from_itemidx=3&count=3&uin=&key=&devicetype=Windows+10+x64&version=63010043&lang=zh_CN&ascene=1&session_us=gh_089c9f6e334b&fontgear=2) 第一时间获取更新。本套教程不仅会详细解释本项目涉及的各大技术点,还会汇总相关的常见面试题,目前尚在更新中。 + + + +并推荐我的开源教程类项目 [『 CS-Wiki 』](https://gitee.com/veal98/CS-Wiki),Gitee 推荐项目,目前已累积 1.5k star: 致力打造完善的 Java 后端知识体系,不仅仅帮助各位小伙伴快速且系统的准备面试(秋招/社招),更指引学习的方向。 + +### 序章 + +- [必读:Echo 项目的 README](https://mp.weixin.qq.com/s/iiukwRNW1-my1q6UjYl4iw) +- [Echo 项目结构分析](https://mp.weixin.qq.com/s/dZqSB0EN5-rmGQeG3Lx2jA) +- [Echo 数据库表是如何设计的](https://mp.weixin.qq.com/s/DG549DzLy3NhXwpsOWaXYA) +- [Echo 技术选型分析](https://mp.weixin.qq.com/s/tTBzyMklFtBfkyvuh8W0Nw) + +### 部署篇 + +- [Echo 在 Windows 环境下的部署](https://mp.weixin.qq.com/s/ZgYGqLB5_rfCXNrW9jqgtQ) +- [Echo 在 Linux 服务器上的部署](https://mp.weixin.qq.com/s/q9X5sJv7mtPaSApZB0PxPA) + +### 业务逻辑篇 + +- [Echo 的注册功能是怎么做的](https://mp.weixin.qq.com/s/SC2FRPrVUbNw5ySHopOpHQ) +- [Echo 的登录认证和授权是怎么做的](https://mp.weixin.qq.com/s/DjGvuNYu5Fjvw3Gjha4ulw) + +### 技术要点篇 + +- 代更 + +### 常见面试题 + +- 待更 + ## 💻 核心技术栈 后端: @@ -419,38 +452,6 @@ double score = Math.log10(Math.max(w, 1)) ![](https://gitee.com/veal98/images/raw/master/img/20210208173636.png) -## 📖 配套教程 - -想要自己从零开始实现这个项目或者深入理解的小伙伴,可以扫描下方二维码关注公众号『**飞天小牛肉**』回复 `Echo` 获取配套教程,订阅话题 [Echo 学习教程](https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzI0NDc3ODE5OQ==&action=getalbum&album_id=1744497649518493697&scene=173&from_msgid=2247485209&from_itemidx=3&count=3&uin=&key=&devicetype=Windows+10+x64&version=63010043&lang=zh_CN&ascene=1&session_us=gh_089c9f6e334b&fontgear=2) 第一时间获取更新。本套教程不仅会详细解释本项目涉及的各大技术点,还会汇总相关的常见面试题,目前尚在更新中。 - - - -并推荐我的开源教程类项目 [『 CS-Wiki 』](https://gitee.com/veal98/CS-Wiki),Gitee 推荐项目,目前已累积 1.5k star: 致力打造完善的 Java 后端知识体系,不仅仅帮助各位小伙伴快速且系统的准备面试(秋招/社招),更指引学习的方向。 - -### 序章 - -- [必读:Echo 项目的 README](https://mp.weixin.qq.com/s/iiukwRNW1-my1q6UjYl4iw) -- [Echo 项目结构分析](https://mp.weixin.qq.com/s/dZqSB0EN5-rmGQeG3Lx2jA) -- [Echo 数据库表是如何设计的](https://mp.weixin.qq.com/s/DG549DzLy3NhXwpsOWaXYA) -- [Echo 技术选型分析](https://mp.weixin.qq.com/s/tTBzyMklFtBfkyvuh8W0Nw) - -### 部署篇 - -- [Echo 在 Windows 环境下的部署](https://mp.weixin.qq.com/s/ZgYGqLB5_rfCXNrW9jqgtQ) -- [Echo 在 Linux 服务器上的部署](https://mp.weixin.qq.com/s/q9X5sJv7mtPaSApZB0PxPA) - -### 业务逻辑篇 - -- [Echo 的注册功能是怎么做的](https://mp.weixin.qq.com/s/SC2FRPrVUbNw5ySHopOpHQ) - -### 技术要点篇 - -- 代更 - -### 常见面试题 - -- 待更 - ## 📞 联系我 有什么问题也可以添加我的微信,记得备注来意:格式 (学校或公司 - 姓名或昵称 - 来意) diff --git a/src/main/java/com/greate/community/controller/LoginController.java b/src/main/java/com/greate/community/controller/LoginController.java index 033400e3..75ca7982 100644 --- a/src/main/java/com/greate/community/controller/LoginController.java +++ b/src/main/java/com/greate/community/controller/LoginController.java @@ -163,7 +163,6 @@ public class LoginController implements CommunityConstant { Model model, HttpServletResponse response, @CookieValue("kaptchaOwner") String kaptchaOwner) { // 检查验证码 - // String kaptcha = (String) session.getAttribute("kaptcha"); String kaptcha = null; if (StringUtils.isNotBlank(kaptchaOwner)) { String redisKey = RedisKeyUtil.getKaptchaKey(kaptchaOwner); diff --git a/src/main/java/com/greate/community/entity/LoginTicket.java b/src/main/java/com/greate/community/entity/LoginTicket.java index 804c8b97..f13c2713 100644 --- a/src/main/java/com/greate/community/entity/LoginTicket.java +++ b/src/main/java/com/greate/community/entity/LoginTicket.java @@ -6,9 +6,9 @@ public class LoginTicket { private int id; private int userId; - private String ticket; - private int status; - private Date expired; + private String ticket; // 凭证 + private int status; // 状态(是否有效) + private Date expired; // 过期时间 public int getId() { return id; diff --git a/src/main/java/com/greate/community/service/UserService.java b/src/main/java/com/greate/community/service/UserService.java index 7ef0abbc..7f3b652c 100644 --- a/src/main/java/com/greate/community/service/UserService.java +++ b/src/main/java/com/greate/community/service/UserService.java @@ -203,7 +203,6 @@ public class UserService implements CommunityConstant { loginTicket.setStatus(0); // 设置凭证状态为有效(当用户登出的时候,设置凭证状态为无效) loginTicket.setExpired(new Date(System.currentTimeMillis() + expiredSeconds * 1000)); // 设置凭证到期时间 - // loginTicketMapper.insertLoginTicket(loginTicket); // 将登录凭证存入 redis String redisKey = RedisKeyUtil.getTicketKey(loginTicket.getTicket()); redisTemplate.opsForValue().set(redisKey, loginTicket); @@ -260,6 +259,7 @@ public class UserService implements CommunityConstant { User user = userMapper.selectById(userId); // 重新加盐加密 newPassword = CommunityUtil.md5(newPassword + user.getSalt()); + clearCache(userId); return userMapper.updatePassword(userId, newPassword); }