当前位置: 首页> 教育> 幼教 > 设计制作小车教学视频_重庆观音桥疫情_电商平台发展现状与趋势_网络软文

设计制作小车教学视频_重庆观音桥疫情_电商平台发展现状与趋势_网络软文

时间:2025/8/27 4:10:05来源:https://blog.csdn.net/thm19990903/article/details/143615134 浏览次数:0次
设计制作小车教学视频_重庆观音桥疫情_电商平台发展现状与趋势_网络软文

医院信息化与智能化系统(19)

这里只描述对应过程,和可能遇到的问题及解决办法以及对应的参考链接,并不会直接每一步详细配置
如果你想通过文字描述或代码画流程图,可以试试PlantUML,告诉GPT你的文件结构,让他给你对应的代码

预约挂号微服务模块搭建

前端知识点补充,此章节不会详细讲具体前端的每个知识点

1、登录注册

创建service-user模块,依然是对应创建启动类、配置文件...

需要在getway模块配置文件,配置user的网关

在Controller类中需要创建方法实现功能

  1. 用户手机号登录接口

common中提供了LoginVo实体类,包含登录对象的手机号密码等字段。

在Impl类中创建loginUser方法,接收LoginVo,返回一个Map集合。

逻辑:

从loginVo获取输入的手机号与验证码

判断手机号与验证码是否为空

判断是否是第一次登录:根据手机号查询数据库,如果不存在相同的手机号,则判定为第一次登录

不是第一次,直接登录,返回登录信息:用户名、token

Token

在用户登录成功后,服务器会生成一个 Token,客户端在后续请求中携带这个 Token 用于身份验证

JWT(JSON Web Token):一种广泛使用的 Token 格式,通常由三部分组成:Header.Payload.Signature,以点分隔。

部分名称描述
公共部分Header包含 Token 的元信息,比如签名算法(alg)和类型(typ)。
私有部分Payload承载的实际数据,包括公共声明(如 issexp)和私有声明(自定义字段,如 userIdrole)。
签名部分Signature确保 Token 未被篡改,由密钥对 Base64URL(Header) + "." + Base64URL(Payload) 进行签名,使用指定算法生成。
完整结构JWT (最终生成的 Token)通过 Base64URL(Header)Base64URL(Payload)Base64URL(Signature) 拼接生成,部分数据可通过解码还原(签名部分除外)。

common-util模块引入依赖jjwt,并创建JwtHelper类为后续使用token,代码由项目提供。

生成 Token,输入用户 ID 和用户名,生成一个 JWT。

  • 一个主题(Subject)
  • 一个过期时间(tokenExpiration)
  • 自定义声明(userId 和 userName)
  • 签名算法(HS512)和签名密钥(tokenSignKey)。
  • 压缩方式(GZIP)

测试时,我无法启动,报错:Mybatis-Mapperscan错误,与spring版本有关;我发现我不小心把service-user的父工程设置成了yygh-parent了,修改很简单,在service-user的pom中更改为service模块,再把yygh-parent中pom内的module标签中,把service-use删了,再在service的pom中module标签中添加service-use即可。

swagger测试
在这里插入图片描述

2、阿里云短信服务

进入阿里云官网,查询短信服务->快速学习和测试,下方有一个专用的测试签名和模版
在这里插入图片描述
在右上方头像上找到AccessKey,然后创建AccessKey,注意保存IDSecret

3、整合短信服务

创建service的子模块service-msm,添加aliyun-java-sdk-core依赖

在配置文件application中添加关于redis数据库地址、服务端口、nacos阿里云AccessKey

创建启动类
注释的意思表示 不配置数据库

@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)//取消数据源自动配置
@EnableDiscoveryClient
public class ServiceMsmApplication {public static void main(String[] args) {SpringApplication.run(ServiceMsmApplication.class, args);}
}

创建配置类ConstantPropertiesUtils,在服务器启动时,就能将application中关于AccessKey的信息,配置到字段REGION_IdACCESS_KEY_IDSECRECT

在Controller中实现代码逻辑,其中要用到RedisTemplate类进行redis数据库操作、并在utils文件夹创建RandomUtil类,用于随机生成验证码

  1. 从redis获取验证码,如果获取成功,返回ok
  2. 如果从redis获取不到,调用RandomUtil生成
  3. 生成验证码,通过整合短信服务进行发送
  4. 生成验证码放到redis里面,设置有效时间

最终成功接收到短信,并在redis成功接收到信息(这个需要费用的,可以在阿里云充1块钱)
在这里插入图片描述
这样就可以在UserInfoServiceImpl完成验证手机验证码与redis手机验证码是否一致了。

前端操作
myheader.vue,即头页面中进行登录实现

需要安装 npm install js-cookie,把用户信息记录在cookie中

注意:

  1. service-user的配置文件需要配置redis!!
  2. 验证码有有效时间
  3. 后端要启动5个服务
    在这里插入图片描述

问题:在预约挂号页面,选择科室去挂号时我们需要判断当前是否登录,如果登录可以进入下一个页面;如果没有登录需要显示登录层。

注册一个全局登录事件,当需要登录层是,我们发送一个登录事件,头部监听登录事件,然后我们触发登录按钮的点击事件即可打开登录层。

mounted:页面渲染后执行

mounted() {
// 注册全局登录事件对象
window.loginEvent = new Vue();
// 监听登录事件
loginEvent.$on('loginDialogEvent', function () {
document.getElementById("loginDialog").click();})
// 触发事件,显示登录层:loginEvent.$emit('loginDialogEvent')
}

这里要记得,可能你退出登录了,但是cookie还没失效,无法显示效果,可以换一个浏览器试试,它是不携带cookie的。

关键字:设计制作小车教学视频_重庆观音桥疫情_电商平台发展现状与趋势_网络软文

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: