html登陆注册功能实现,实现用户的登录注册功能

在基于Spring Boot框架上,实现用户的登录注册功能,

首先分析前期所需要的规划。

1 实现登录注册

前端向后端发起post请求

2用户密码安全性

密码是不推荐明文入库的,在后台采取秘钥加加不可逆加密方式进行加密后再存入数据库

3 登录状态的保存

http是无状态的协议,要实现用户登录状态的保存可以通过,cookie和session,进行验证。

4 防止cookie被盗

cookie内采用token和ip地址结合MD5加密的随机序列。

5密码找回功能

可以通过唯一标识用户的手机号和邮箱,发送验证链接,这个链接地址为了安全起见要加入时间戳和唯一随机数来保证这个链接只在某个时间内有效,

过期过着密码已经重置,则删除这个唯一的随机数

6防止恶意攻击

最有效的方式就是加入验证码,如果用户和某个ip在一段时间时间内频繁失败登录超过阈值次数,则限制在几分钟内无法登陆。

其次在实现上

由于http是无状态的协议,我们需要通过cookie和session来进行验证,具体是实现是,浏览器向服务器初次发送登录注册请求

的时候回输入登录名和密码,这时候,服务器会生成一个token保存在数据库中,并写入cookie中,然后服务器生成一个session,

session中包含着用户的信息。浏览器每次发送请求的时候都会携带cookie,服务器通过cookie里的token来验证用户,通过验证则放行。

登录: 1 用户登录时验证用户名和密码

2生成token保存在数据库中,将token写入cookie

3将用户数据保存在session中

4 请求时都带这cookie,验证

单点登录问题

对于多个系统拥有多个不同的tomcat容器,不同的tomact容器中的session是不共享的。session不共享问题有以下的解决方案

1 实现tomact集群的session全局共享(集群内内个Tomcat的session都完全同步) 这样会影响集群的性能不推荐使用

2根据请求的ip进行hash映射,请求ip会一直访问同一个节点,不推荐,这个节点宕机会丢失数据

3将session存放在redis中(使用redis模拟session)推荐

还可将登陆功能单独独立出来,作为一个sso单点登录系统,其他子系统进行登陆时,请求sso进行验证,sso将返回token写入cookie中。下次访问时带上cookie。

1 sso生成token,将用户信息写入Redis中,并设置过期时间

2 其他系统请求sso系统,得到sso系统生成的token写入到cookie中

3 每次请求 都会带上cookie,拦截器,拦截到token,验证是否已经登陆。

以上,将登录注册作为一个单独的系统,将用户的信息保存在Redis中

cookie跨域问题

认证中心

reference:https://blog.csdn.net/WantFlyDaCheng/article/details/100078610

原文:https://www.cnblogs.com/bowenqianngzhibushiwo/p/11576480.html

你可能感兴趣的:(html登陆注册功能实现)