小说系统方案搭建开发,实现系统的用户登录验证说明

简介: 本文总结了小说系统源码中常见的身份认证方式,涉及JWT和Shiro。传统的认证流程包括用户提交凭证、服务器保存Session数据、发送Session_id给客户端,后续请求携带Session_id。但这种方式在多服务器或跨域场景下扩展性差。解决方案有Session数据共享或持久化。作者将服务端维护Session信息的认证方式归类为传统方式,反之为非传统方式,后者扩展性更优。文中还介绍了实例项目的SQL建表结构,用于演示认证流程。

前言关于小说系统源码身份认证的方式,最近在工作中用到了些,想着就干脆针对目前常用的身份认证组件的实际使用,就做一个总结,会涉及Json Web Token(JWT),Shiro的常见认证方式。传统的认证流程在学习这些组件的时候,还是需要熟悉一下认证的流程,其实一般的身份认证流程也不复杂,只是由于本身HTTP是无状态协议,因此需要交互多次才能验证用户身份。用户认证的一般流程如下1、用户向服务器发送用户名和密码2、若用户信息通过验证,在当前会话(session)中保存相关客户数据,比如用户登录时间和用户角色等等。3、服务器向用户发送一个session_id,存入用户端的cookie4、用户随后访问服务器的每一次请求,都需要带上cookie中的session_id5、服务器收到session_id之后,就可以根据session_id 找到对应的session用户数据。通过这个流程,至少应该知道了sessionid,session与cookie的区别,以及各自在web开发中的角色。同时需要说明的是,很多时候小说系统源码客户端会禁用cookie,因此更多的时候会用token机制替代sessionid,之后小说系统源码每次的请求都会在HTTP的header头中带上token。同时token还有更高级的认证用法,主要用于第三方登录的用户授权,当然这个是后话了。但是会发现,这个流程会有很多问题,其核心就是扩展性很差,如果只有一个服务器这个是没有任何毛病的,但是如果有多个服务器,如果实现了跨域访问,这个就有点麻烦了,解决方案其实也有无非就是以下几种思路一种解决思路就是session数据共享,让每台服务器都能从固定的地方读取session,比如将session存入统一的缓存中间件。另一种解决思路就是session持久化,直接将用户session数据存入到数据库或者持久层,这样工作量会很大,而且性能也会有一点影响,同时针对失效的session还需要有单独的定时任务批量删除。我个人归纳,如果需要服务端来维护session信息的,都属于比较传统的身份认证方式,如果session信息不需要服务端来维护,则属于非传统的身份认证方式,这种认证方式可扩展性较好。本篇博客总结一下传统的认证方式,并附上相关实例。实例项目的搭建用idea建立一个项目,然后搭建三个模块,整体接口如下准备一下SQLCREATEDATABASEdb_user_auth;USEdb_user_auth;–用户操作日志记录表CREATETABLElog(idint(11)NOTNULLAUTO_INCREMENT,user_idint(11)DEFAULTNULLCOMMENT'用户id',user_namevarchar(255)CHARACTERSETutf8mb4DEFAULTNULLCOMMENT'用户名',create_timedatetimeDEFAULTNULLCOMMENT'操作时间', 【方案部署搭建可V or TG我昵称】memovarchar(255)CHARACTERSETutf8mb4DEFAULTNULLCOMMENT'操作备注',PRIMARYKEY(id))ENGINE=InnoDBAUTO_INCREMENT=2DEFAULTCHARSET=utf8COMMENT='操作日志';–用户表CREATETABLEuser(idint(11)NOTNULLAUTO_INCREMENT,user_namevarchar(100)CHARACTERSETutf8mb4NOTNULLCOMMENT'用户名',passwordvarchar(200)CHARACTERSETutf8mb4NOTNULLCOMMENT'密码',phonevarchar(50)NOTNULLCOMMENT'手机号',emailvarchar(100)CHARACTERSETutf8mb4NOTNULLCOMMENT'邮箱',is_activetinyint(11)DEFAULT'1'COMMENT'是否有效(1=是;0=否) 【方案部署搭建可V or TG我昵称】',create_timedatetimeDEFAULTNULLCOMMENT'创建时

相关文章
|
人工智能 JSON 数据可视化
yolov8+动物+姿态识别(训练教程+代码)
yolov8+动物+姿态识别(训练教程+代码)
|
8月前
|
存储 SQL 数据采集
星型模型、雪花模型、星座模型:优缺点与选型
本文深度解析数据仓库三大建模模式:星型(查询快、易懂但冗余)、雪花(节省存储、一致性高但性能差)、星座(支持多主题分析但设计复杂)。结合实战经验,给出选型指南——按性能、团队能力、业务广度灵活决策,并推荐混合使用策略:底层雪花清洗、上层星型加速、逐步演进为星座模型。
|
人工智能 移动开发 监控
「10秒发现,5分钟定位」- 阿里云EMAS应用监控引领全链路智能监控新时代
阿里云 EMAS 应用监控是面向客户端的全方位监控服务平台,覆盖移动端和Web/H5端。基于阿里巴巴深厚的技术沉淀,提供稳定高效的监控服务,帮助开发者实时掌握应用性能与稳定性情况,快速构建“感知 > 定位 > 修复”运维闭环,保障应用质量,优化用户体验。
847 13
「10秒发现,5分钟定位」- 阿里云EMAS应用监控引领全链路智能监控新时代
|
存储 机器学习/深度学习 缓存
软考软件评测师——计算机组成与体系结构(分级存储架构)
本内容全面解析了计算机存储系统的四大核心领域:虚拟存储技术、局部性原理、分级存储体系架构及存储器类型。虚拟存储通过软硬件协同扩展内存,支持动态加载与地址转换;局部性原理揭示程序运行特性,指导缓存设计优化;分级存储架构从寄存器到外存逐级扩展,平衡速度、容量与成本;存储器类型按寻址和访问方式分类,并介绍新型存储技术。最后探讨了存储系统未来优化趋势,如异构集成、智能预取和近存储计算等,为突破性能瓶颈提供了新方向。
|
11月前
|
机器学习/深度学习 弹性计算 人工智能
最新版:云服务器租用价格表(一年/按月/按小时报价明细)
阿里云服务器主要包含轻量应用服务器、云服务器 ECS 和 GPU 服务器三大类,不同类型、配置及计费方式的价格存在差异。以下结合最新信息,整理各类服务器的收费标准、价格构成及不同场景下的参考价格,为用户成本核算提供依据。
|
人工智能 测试技术
陶哲轩联手60多位数学家出题,世界顶尖模型通过率仅2%!专家级数学基准,让AI再苦战数年
著名数学家陶哲轩联合60多位数学家推出FrontierMath基准测试,评估AI在高级数学推理方面的能力。该测试涵盖数论、实分析等多领域,采用新问题与自动化验证,结果显示最先进AI通过率仅2%。尽管存在争议,这一基准为AI数学能力发展提供了明确目标和评估工具,推动AI逐步接近人类数学家水平。
718 37
|
人工智能 弹性计算 双11
2025年阿里云双11优惠活动盛大开启!超7000万大模型tokens免费体验
2025阿里云双11火热开启!领至高1728元优惠券,享超7000万tokens免费体验。云服务器低至38元/年起,AI大模型、GPU算力、企业出海等多重补贴,助力上云普惠升级。
1175 11
|
SQL Java
SpringData JPA多表关联操作
SpringData JPA多表关联操作
448 0
|
存储 分布式计算 调度
云计算核心技术
云计算作为IT领域的热门技术,融合网格计算与虚拟化,通过资源池和分布式存储提供高效计算与存储服务。其架构涵盖物理资源、资源池、管理中间件及SOA构建层,关键技术包括虚拟化、海量数据处理、资源调度、服务管理及云平台,旨在实现低成本、高可靠、可扩展的服务交付。
1059 0
云计算核心技术
|
人工智能 小程序 API
【一步步开发AI运动APP】九、自定义姿态动作识别检测——之关键点追踪
本文介绍了【一步步开发AI运动APP】系列中的关键点追踪技术。此前分享的系列博文助力开发者打造了多种AI健身场景的小程序,而新系列将聚焦性能更优的AI运动APP开发。文章重点讲解了“关键点位变化追踪”能力,适用于动态运动(如跳跃)分析,弥补了静态姿态检测的不足。通过`pose-calc`插件,开发者可设置关键点(如鼻子)、追踪方向(X或Y轴)及变化幅度。示例代码展示了如何在`uni-app`框架中使用`createPointTracker`实现关键点追踪,并结合人体识别结果完成动态分析。具体实现可参考文档与Demo示例。