登录、注册功能实现

登录和注册功能

由于在线教育项目采用分布式微服务架构,包含多个模块,且多个模块独立运行。因此这里使用单点登录,即在任何一个模块进行登录之后,在其他模块不需要进行二次登录,都可以直接访问
单一服务器登录:使用session对象:
在这里插入图片描述

SSO(single sign on)单点登录

单点登录三种常见的方式
session默认过期时间30分钟
第一种:session广播机制实现:
使用session复制,在当前模块中登录之后,将登录信息复制到其他模块。(早期的方式)了解

第二种:使用cookie+redis实现单点登录
cookie是一种客户端技术,存储到浏览器中,每次请求会带着cookie值进行发送。
第二种方式的具体实现过程:
1、在项目的任何一个模块进行登录,登录之后,将登录数据放到两个地方:
(1)redis:在key存放:生成唯一的随机值。 在value存放:用户数据
(2)cookie:吧redis中生成的key值放到cookie中
2、访问项目中的其他模块时,发送请求时会带着cookie值进行发送请求。因此要获取cookie值,拿着cookie值执行操作:
(1)把获取到的cookie值拿到redis进行查询,根据key进行查询,如果查询到数据就是登陆,否则就不是登陆
在这里插入图片描述

第三种:使用token实现单点登录
token(令牌):按照一定的规则(可以自己定义)生成字符串,字符串可以包含用户信息
1、首先在项目的某个模块实现了登陆,登陆之后,按照一定的规则生成字符串,把登陆之后的用户信息包含到生成的字符串中,吧字符串返回(两种方式)
(1)吧字符串通过cookie返回
(2)吧字符串通过地址栏返回
2、再去访问其他模块,每次访问在地址栏带着生成的字符串,在访问模块中获取地址栏字符串,根据字符串获取用户信息,如果可以获取的用户信息,就是登陆。
在这里插入图片描述

JWT(json web token)

token是按照一定规则生成字符串,包含用户信息
这里的规则采用通用的规则 ,官方的规则 JWT
JWT:是制定好了规则,使用jwt规则生成字符串,包含用户信息
例如这个
在这里插入图片描述
JWT生成的字符串包含三个部分:每个部分用.点隔开
第一部分:JWT头信息部分
第二部分:有效载荷,包含主体信息(用户信息)
第三部分:签名哈希,字符串的防伪标志

JWT的使用

因为JWT每个模块都使用,因此放到公共模块中
一、在common_utils模块中引入JWT依赖,复制JWT工具类
在jwtUtils工

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MVC(Model-View-Controller)是一种常用的软件架构模式,用于将应用程序的逻辑分离成三个不同的组件:模型(Model)、视图(View)和控制器(Controller)。下面是一个简单的MVC登录注册功能实现方式: 1. 模型(Model):模型负责处理数据和业务逻辑。在登录注册功能中,模型负责验证用户输入的用户名和密码是否正确,并与数据库进行交互。 2. 视图(View):视图负责展示用户界面。在登录注册功能中,视图包括登录页面和注册页面,用户可以在这些页面中输入用户名和密码。 3. 控制器(Controller):控制器负责处理用户的请求和响应。在登录注册功能中,控制器接收用户提交的表单数据,并将其传递给模型进行验证。如果验证通过,控制器可以跳转到其他页面或执行其他操作。 具体实现步骤如下: 1. 创建一个用户模型(User Model),包含用户名和密码等属性,并实现验证方法。 2. 创建一个登录页面视图(Login View),包含用户名和密码的输入框以及登录按钮。 3. 创建一个注册页面视图(Register View),包含用户名、密码和确认密码的输入框以及注册按钮。 4. 创建一个控制器(Controller),处理用户的请求和响应。在控制器中,可以监听登录按钮和注册按钮的点击事件,并获取用户输入的用户名和密码。 5. 在控制器中,将获取到的用户名和密码传递给用户模型进行验证。如果验证通过,可以执行登录成功或注册成功的操作;如果验证失败,可以提示用户重新输入或显示错误信息。 6. 根据需要,可以在控制器中实现其他功能,比如跳转到其他页面、保存用户登录状态等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值