资讯 小学 初中 高中 语言 会计职称 学历提升 法考 计算机考试 医护考试 建工考试 教育百科
栏目分类:
子分类:
返回
空麓网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
空麓网 > 计算机考试 > 软件开发 > 后端开发 > Java

仿牛客社区项目描述

Java 更新时间: 发布时间: 计算机考试归档 最新发布

仿牛客社区项目描述

仿牛客社区项目描述
    • 1. 权限模块
      • 1.1 注册
      • 1.2 登录

本项目是一个校内互动交流平台,主要涉及模块有权限模块、帖子模块、性能模块、通知模块、搜索模块。主要使用的技术有SpringBoot,SpringMVC,MyBatis,MySQL,Redis,Kafka。

权限模块主要实现了注册登录和权限管理等功能。
帖子模块主要实现了发帖,评论和私信等功能。
性能模块使用Redis实现点赞,关注和网站数据统计等功能。
通知模块使用Kafka实现系统通知功能。
搜索模块使用Elasticsearch实现帖子搜索功能

1. 权限模块 1.1 注册

输入账户,密码,确认密码,邮箱,点击注册按钮。根据 /register(post)传入User。调用 userService.register 方法。

userService.register 方法首先根据用户名和邮箱查询数据库看是否已经存在,如果存在,返回错误信息。如果不存在,对User加入 Salt 属性,即五位随机字符串,为了和密码拼接后进行md5加密。将加密后的密码存入数据库。分别设置Type,Status为0(Type 0普通用户 1管理员 2版主;Status 0未激活 1已激活)。设置随机字符串激活码。设置用户头像和创建时间。将User插入数据库。

使用JavaMailSender发送激活邮件。将可能带有错误信息的Map返回。

LoginController 层得到 Map 判断是否为空,为空则注册成功,返回 /site/operate-result 页面。否则返回 /site/register 页面,并将错误信息加入model中。

在邮箱中点击激活链接,调用LoginController层的 /activation/{userId}/{code} 。调用userService.activation(userId, code)方法。首先判断 User 中的status是否已经等于1,已经等于1返回 重复激活 信息。然后判断 User 中的激活码是否与code相等,等则设置status为1,返回激活成功。不等返回激活失败。

1.2 登录

首先在首页点击登录或者在其他页面转入登录页面时,验证码路径访问 “/kaptcha” 。

在 LoginController 层中根据 KaptchaConfig 配置类中的 kaptchaProducer (google提供)来生成验证码文本和图像, 生成随机字符串作为Redis中验证码的key,将key放在cookie中通过response传给浏览器。然后利用key将验证码文本存入Redis,设置失效时间为60s。为了判断用户在登录时传入的code是否等于该文本。

再通过response将图像返回给浏览器。

在登录页面输入用户名,密码,验证码和是否勾选“记住我”。将对应的username,password,code,rememberme通过 “/login” 传入 login 方法。

Llogin方法在参数中使用 @CookieValue 注解从cookie中取出Redis中验证码文本的key,判断一下key是否为空,不为空则取出Redis中的验证码文本判断是否和code相等,不等返回Map。然后根据remember选取登录凭证超时时间。然后将username,password 和超时时间 传入给userService.login 方法。

userService.login 方法拿到 三个值先判空,空则返回Map。然后根据username查询数据库看账号是否存在。然后查询status看账户是否已经激活。最后验证密码(调取salt和password拼接后使用md5加密再和数据库中密码比对)。然后生成登录凭证,见LoginTicket,将登陆凭证放入Redis,key为随机字符串Ticket字段。将凭证放入Map并返回给 LoginController 层。

LoginController 层拿到Map。查看其中是否有凭证,有将凭证放入cookie,设置过期时间,返回给浏览器,重定向转入index。无则将Map中报错信息加入model,转入login。

转载请注明:文章转载自 http://www.konglu.com/
本文地址:http://www.konglu.com/it/936100.html
免责声明:

我们致力于保护作者版权,注重分享,被刊用文章【仿牛客社区项目描述】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2023 成都空麓科技有限公司

ICP备案号:蜀ICP备2023000828号-2