Springboot 统一登录设计实现

背景

公司产品矩阵比较丰富的时候, 用户在不同系统之间来回切换, 对产品用户体验上比较差, 并且增加用户密码管理成本
对于每个产品的独立体系也会导致产品安全度下降

因此实现单点登录对用户使用体验以及效率有很大的提升

系统架构图:

2024-02-27T08:08:00.png

前端 Vue.js 应用

  • 统一登录入口

    • 提供手机号和微信扫码登录选项。
    • 登录成功后将 JWT 存储在 localStorage 中。 为了规范 使用 Authorization 作为Key token 前缀为 bearer
  • 首页

    • 显示产品按钮,根据用户权限(由教师设置)和产品有效期进行动态展示。
    • 用户点击按钮跳转到相应产品链接,并带上 JWT。

后端 Spring Boot 应用

  • 安全认证

    • 使用 Spring Security 进行认证。
    • 登录成功后颁发 JWT。
    • 将 JWT 存储到 Redis 中并写入序列化用户对象到redis
    • 将拦截接口 对jwt 在验证时检查 Redis 中的有效性。
  • 数据库设计

    • sys_user: 存储用户信息,包括登录时间。
    • sys_product: 存储产品信息,包括链接和有效期。
    • sys_product_permissions: 存储用户的产品权限。
    • sys_product_validity: 存储用户产品的有效期。
    • sys_user_orders: 存储用户订单信息,包括支付状态和产品信息。
  • 表之间的关联
    2024-02-27T08:53:08.png

流程

  1. 用户在前端输入手机号进行登录,或者使用微信扫码登录。
  2. 后端验证登录信息,生成后存储到redis 并返回 JWT给前端。
  3. 前端将 JWT 存储在 localStorage 中。
  4. 用户访问首页,前端根据用户权限和产品有效期动态展示页面内容。
  5. 用户点击按钮跳转到相应产品链接,前端将 JWT 作为参数传递到跳转后的地址 (跳转后需要额外解析)。
  6. 后端接收到请求,验证 JWT 的有效性,并检查用户是否有权限和产品是否在有效期内。
  7. 后端返回相应产品页面或拒绝访问(无权限跳回统一登录首页)。

其他

  • 教师端通过管理界面设置用户权限
  • 学生可以在产品页面购买产品,生成订单并支付。

前端 Vue.js 应用

  • 统一登录入口

    • 用户可以选择使用手机号登录或微信扫码登录。
    • 手机号登录时,前端向后端发送登录请求,包括手机号和验证码。
    • 微信扫码登录时,前端生成扫码链接,用户使用微信扫码后前端轮询后端确认登录状态。
  • 首页

    • 用户登录成功后,前端向后端请求用户权限和产品有效期信息。
    • 根据返回的数据,前端动态展示产品按钮。
    • 用户点击按钮时,前端将用户的 JWT 作为参数附加到产品链接后跳转。

后端 Spring Boot 应用

  • 安全认证

    • 使用 Spring Security 框架实现安全认证。
    • 配置手机号登录和微信扫码登录的认证逻辑。
    • 登录成功后,生成 JWT 并返回给前端,同时将 JWT 存储到 Redis 中。
  • MyBatis Plus 数据库交互

    • 使用 MyBatis Plus 简化数据访问层的开发。
    • 定义实体类对应数据库表结构。
    • 编写 Mapper 接口和 Mapper XML 文件,实现数据库操作。
  • 业务逻辑

    • 使用 MyBatis Plus 的 Service 层对业务逻辑进行封装。
    • 实现用户登录、获取用户权限、验证产品有效期等业务逻辑。
    • 当用户购买产品时,生成订单并更新数据库中的订单信息。
  • Redis 缓存与 Lua 脚本实现限流

    • 将用户的 JWT 存储到 Redis 缓存中,用于快速验证用户身份。
    • 使用 AOP 切面编程实现限流功能,结合 Redis 的 Lua 脚本实现高效的分布式限流。

流程

  1. 用户通过前端界面选择登录方式并输入登录信息。
  2. 前端将登录信息发送至后端进行验证。
  3. 后端验证登录信息,生成并返回 JWT 给前端。
  4. 前端将 JWT 存储到 localStorage 中。
  5. 用户访问首页,前端根据用户权限和产品有效期信息动态展示页面内容。
  6. 用户点击产品按钮,前端将带有 JWT 的请求发送至后端。
  7. 后端接收到请求,验证 JWT 的有效性,并根据用户权限和产品有效期决定是否返回相应页面内容。

备注

  • 教师端通过后台管理界面设置用户权限和产品有效期。
  • 学生可以在产品页面购买产品,生成订单并支付,相关订单信息存储在数据库中。
  • 系统中的用户信息、权限信息、订单信息等都存储在 MySQL 数据库中,使用 Redis 缓存提高系统性能,并通过 Lua 脚本实现分布式限流。

Security 流程图

!(https://img2018.cnblogs.com/i-beta/1328274/202002/1328274-20200209173305680-1946265328.png)[img]

 		     +---------------------+
             |	 统一登录入口        |
             | 手机号登录|微信扫码登录|
             +----------+----------+
                        |
                        v
            +---------------------+
            | 绑定公众号           |
            | 弹出绑定公众号窗口   |
            +----------+----------+
                        |
                        v
               +---------+--------+
               | 首页              |
               | 显示产品按钮      |
               +-------+-----------+
              	      |
               	      v
              +-------+--------+
              | 产品页面        |
              | 显示具体产品内容 |
              +-----------------+

后端 Spring Boot 应用:

      +------------------------+
      | 安全认证                |
      | Spring Security配置     |
      +---------+--------------+
                |
                v
      +---------+--------------+
      | 数据库交互               |
      | MySQL、JPA/MyBatis Plus |
      +---------+--------------+
                |
                v
      +---------+--------------+
      | 业务逻辑                |
      | 用户权限、产品有效期      |
      +---------+--------------+
                |
                v
      +---------+--------------+
      | Redis 缓存              |
      | 存储 JWT                |
      +------------------------+
  • 26
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
会员等级管理 该功能主要用于实现对会员等级基本信息的管理,会员等级管理界面的运行效果见图5.1。在此界面,管理员为不同等级的会员设置不同的折扣,会员等级越高,购物享受的折扣就越多。 商品管理 该功能主要用于实现对商品信息基本信息的管理,商品管理界面的运行效果见图5.2。在此界面,对商品的类型,商品原价,商品库存,商品名称等信息都需要管理员负责添加和修改,同时还需要对商品的库存进行管理,比如增加商品的库存,或者是对商品库存进行减少以及对销量不好的商品进行下架,对新的商品进行上架等操作。 商品评价管理 该功能主要用于实现对商品评价基本信息的管理,商品评价管理界面的运行效果见图5.3。在此界面,商品的评价内容,以及评价用户和评价的商品等信息都能让管理员查看,同时管理员也能对评价商品的用户进行回复。 商品订单管理 该功能主要用于实现对商品订单基本信息的管理,商品订单管理界面的运行效果见图5.4。在此界面,管理员主要处理已经销售的商品信息,即商品订单信息,管理员需要对用户刚刚支付的商品订单进行及时发货,以及对各个商品订单的更多的详细信息进行认真查看。 商品退货管理 该功能主要用于实现对商品退货基本信息的管理,商品退货管理界面的运行效果见图5.5。在此界面,用户申请退货的信息需要管理员查看之后,进行审核。 用户功能实现 商品信息 商品信息界面的运行效果见图5.6。在此界面,用户可以查看商品信息界面展示的商品相关信息,以及通过对商品的相关介绍信息来了解商品,用户如果有购买的需求,可以通过立即购买功能立即下单。 确认下单 确认下单界面的运行效果见图5.7。在此界面,用户不仅需要确认收货地址是否正确,还需要确认需要购买的商品的数量以及商品信息是否正确,最后查看实付金额信息,然后进行下单。 商品订单 商品订单界面的运行效果见图5.8。在此界面展示的信息都是用户购买商品之后产生的信息,用户不仅可以查看信息,还可以根据自身实际情况对商品订单进行相应操作,包括退款或收货等。 购物车 购物车界面的运行效果见图5.9。在此界面,用户可以统一处理购物车里面的商品信息,比如修改各个商品的购买数量,可以增加购买数量,也能减少购买数量,或者是清理一些不需要购买的商品信息,最后查看支付金额,然后统一下单。 商品退货管理 商品退货管理界面的运行效果见图5.10。在此界面,用户对需要退货的订单商品进行添加,然后等待管理员审核通过,最后用户再登记退货信息,主要就是登记退货的快递公司和退货单号信息。
论坛管理 该功能主要用于实现对论坛帖子基本信息的管理,论坛管理界面的运行效果见图5.1。在此界面,管理员不仅需要跟踪论坛帖子,比如查看论坛帖子的回复,删除论坛帖子的回复信息等,修改论坛帖子的内容,删除需要删除的论坛帖子信息等。 商品管理 该功能主要用于实现对商品信息基本信息的管理,商品管理界面的运行效果见图5.2。在此界面,对商品的类型,商品原价,商品库存,商品名称等信息都需要管理员负责添加和修改,同时还需要对商品的库存进行管理,比如增加商品的库存,或者是对商品库存进行减少以及对销量不好的商品进行下架,对新的商品进行上架等操作。 商品评价管理 该功能主要用于实现对商品评价基本信息的管理,商品评价管理界面的运行效果见图5.3。在此界面,商品的评价内容,以及评价用户和评价的商品等信息都能让管理员查看,同时管理员也能对评价商品的用户进行回复。 商品订单管理 该功能主要用于实现对商品订单基本信息的管理,商品订单管理界面的运行效果见图5.4。在此界面,管理员主要处理已经销售的商品信息,即商品订单信息,管理员需要对用户刚刚支付的商品订单进行及时发货,以及对各个商品订单的更多的详细信息进行认真查看。 商品资讯管理 该功能主要用于实现对商品资讯基本信息的管理,商品资讯管理界面的运行效果见图5.5。在此界面,商品资讯的内容以及图片等信息都是管理员负责登记的信息,也包括后期对商品资讯信息的针对性修改和删除等都是管理员负责的内容。 商品信息 在此界面,用户可以查看商品信息界面展示的商品相关视频,以及通过对商品的相关介绍信息来了解商品,用户如果有购买的需求,可以通过立即购买功能立即下单。 ,用户不仅需要确认收货地址是否正确,还需要确认需要购买的商品的数量以及商品信息是否正确,最后查看实付金额信息,然后进行下单。 在此界面展示的信息都是用户购买商品之后产生的信息,用户不仅可以查看信息,还可以根据自身实际情况对商品订单进行相应操作,包括退款或评价等。 用户可以统一处理购物车里面的商品信息,比如修改各个商品的购买数量,可以增加购买数量,也能减少购买数量,或者是清理一些不需要购买的商品信息,最后查看支付金额,然后统一下单。 用户对在线论坛展示的帖子进行查看,每个论坛帖子都允许用户查看后提交评论信息。在在线论坛的界面,用户点击右上角的发帖链接即可发布自己的帖子。
基于Spring Boot的酒店客房管理平台的设计实现 JavaSpringBoot;MySQL; 本文旨在设计开发一款基于spring boot框架的酒店客房管理系统,实现酒店管理中的房间管理、预订管理、入驻管理、楼层管理等功能,从而提高酒店经营者对酒店管理的掌控度,便捷的酒店客房管理系统,能够有效地提高酒店管理的效率和服务质量,提高客户满意度。 模块功能设计 开发一款酒店客房管理平台,模块功能设计需要按照以下步骤进行: 1.客房预订模块:这个模块主要功能是用户通过平台可以浏览、查询酒店客房信息,实现客房预订,包括客房类型、价格、优惠活动、入住时间等信息。 2.客房管理模块:这个模块主要功能是针对酒店客房的管理,包括客房发布、剩余客房数量、客房状态管理、客房数据分析等。 3.客户管理模块:这个模块主要是针对酒店客户的信息进行管理,包括客户档案管理、客户分组和标签管理,以及数据分析和客户评价等。 4.订单管理模块:这个模块主要功能是客户在通过平台进行预订后,酒店需要将订单统一管理,包括订单入住、订单结算、订单退款等。 5.物品管理模块:这个模块主要针对酒店客房中的物品管理,包括洗漱用品、床品、电器等物品的管理,以及库存管理、物品追踪、物品分类等功能。 6.财务管理模块:这个模块主要是针对酒店财务信息的管理,包括账单结算、收支明细、财务分析等功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值