一个(自认为)较为完整的登录注册功能的实现

最近一段时间需要和同学们采用前后端分离的方式完成一个小型的在线书城的项目。我本人在这次项目中主要负责登录注册模块的开发,因为面临着找工作的压力,所以自己在原本登录注册功能的基础上进行了一些功能上的补充以及技术方面的扩充。将初步的设计思路写下来,给自己的后续开发工作定一个目标也希望可以为对这些问题感兴趣的同学提供帮助。

整体的布局使用思维导图的方式呈现:

图1

接下来将分功能逐一进行简要的说明:

Shiro框架部分的需求细化:

图2

第三方接口:

图3

 

登录功能的实现可以通过基本的账号密码进行登录;也可以在使用第三方接口的情况下进行快捷登录(尽量模拟上线软件的功能实现过程,做到尽可能的专业化:qq快捷登录方式;微博快捷登录方式;微信快捷登录方式)还可以自己实现扫码登录(扫码登录的过程在今后的开发过程中进行说明)。

 

Shiro框架的实现部分:

 

图4

 

依托shiro框架实现了部分功能:session管理;权限验证;密码加密(加盐);退出系统。

分功能实现:

session管理部分的要点:

图5

Session中存储当前登录用户的信息,redis可以缓存session数据,例如用于异地登录时权限数据。

 

权限管理部分:

 

RBAC模型

图6(来源 https://blog.csdn.net/yangwenxue_admin/article/details/73936803 )

密码加密:

初步计划使用SHA 以及MD5 算法进行加密处理(数据进过前端加密后在进入后台进行二次加密)

 

 图7

密码加盐:

密码加盐的过程简单实现为在密码段后在加上一段字符进行拼接后进行加密。

退出系统时要清除当前登录用户的session数据。

注销功能:

 

 图8

注销功能是出于用户角度考虑新增的功能项。

在用户决定注销系统账号时 开始作用。参考一些软件的模式,让用户选择一些删除用户账户的理由以便改进系统。

 

退出系统:

 

图9

主要在于用户选定自动登录功能的情况下session的处理方式。

我个人觉得在redis里存储的角色信息出于下一次登录的效率问题不应该删除。

 以上内容就是我所能想到的有关登录注册功能实现的一些要点,因为还是在校学生,并没有接触过真正的商业项目,所以在某些地方还有所欠缺,希望大家斧正。

 

转载于:https://www.cnblogs.com/volatile0509/p/9352412.html

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SSM(Spring + Spring MVC + MyBatis)是目前较为流行的Java Web框架,以下是实现登录注册功能的简单步骤: 1. 配置数据源和MyBatis 在`applicationContext.xml`中配置数据库连接池,例如使用Druid连接池: ```xml <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"> <property name="driverClassName" value="${jdbc.driverClassName}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </bean> ``` 配置MyBatis的SqlSessionFactory和MapperScannerConfigurer: ```xml <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="typeAliasesPackage" value="com.example.model" /> <property name="mapperLocations" value="classpath*:com/example/mapper/*.xml" /> </bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.example.mapper" /> </bean> ``` 2. 编写实体类和Mapper接口 例如编写用户实体类`User.java`和对应的Mapper接口`UserMapper.java`,并在Mapper接口中定义登录和注册的方法: ```java public interface UserMapper { User getUserByUsername(String username); int addUser(User user); } ``` 3. 编写Controller层 编写登录和注册的Controller层代码,例如: ```java @Controller public class UserController { @Autowired private UserMapper userMapper; @RequestMapping("/login") public String login(String username, String password, HttpSession session) { User user = userMapper.getUserByUsername(username); if (user != null && user.getPassword().equals(password)) { session.setAttribute("user", user); return "redirect:/index"; } else { return "login"; } } @RequestMapping("/register") public String register(User user, HttpSession session) { int count = userMapper.addUser(user); if (count > 0) { session.setAttribute("user", user); return "redirect:/index"; } else { return "register"; } } } ``` 4. 编写前端页面 编写登录和注册的前端页面,例如: 登录页面`login.jsp`: ```html <form action="/login" method="post"> <input type="text" name="username" placeholder="用户名"> <input type="password" name="password" placeholder="密码"> <button type="submit">登录</button> </form> ``` 注册页面`register.jsp`: ```html <form action="/register" method="post"> <input type="text" name="username" placeholder="用户名"> <input type="password" name="password" placeholder="密码"> <button type="submit">注册</button> </form> ``` 5. 配置Spring MVC 在`dispatcherServlet-servlet.xml`中配置Spring MVC,例如: ```xml <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/" /> <property name="suffix" value=".jsp" /> </bean> <mvc:annotation-driven /> <context:component-scan base-package="com.example.controller" /> ``` 以上就是简单的SSM登录注册功能实现。当然,在实际开发中还需要考虑安全性、用户体验等方面的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值