手摸手,带你搭建前后端分离商城系统03整合SpringSecuritytoken实现方案,完成主业务登录程序猿小码

上节里面,我们已经将基本的前端VUE+ElementUI整合到了一起。并且通过axios发送请求到后端API。

解决跨域问题后、成功从后端获取到数据。

在之前,我们的API都是一种裸奔的方式。谁都可以访问,肯定是不安全的。所以我们要引入安全校验框架。

因为HTTP是一种无状态的协议。所以服务端不知道这个请求是谁发过来的,有好多人访问服务器,但是对于服务器来说,这些人我都不认识。就需要一种东西来给每个人加一个ID。

session(会话)是一种客户端发起请求后,服务端用来识别用户的东西,可以保存一些用户的基本信息。比如ID什么的

cookie是一种客户端浏览器用来记录和保存信息的东西。简单理解,如图所示。

当然,默认的cookie里面总会包含一串JSESSIONID

Session:每个用户经过我们的应用认证之后,我们的应用都要在服务端做一次记录,以方便用户下次请求的鉴别,通常而言session都是保存在内存中,而随着认证用户的增多,服务端的开销会明显增大。

CSRF:因为是基于cookie来进行用户识别的,cookie如果被截获,用户就会很容易受到跨站请求伪造的攻击。

肯定是原有的session认证的方式存在弊端、我们就需要采取一种新的方式来进行验证。JWT

JWTtoken由三部分构成:

头部一般包含加密算法和类型。例如

//secret为加密算法的密钥Stringsignature=HMACSHA512(base64UrlEncode(header)+"."+base64UrlEncode(payload),secret)我们来参考一个生成的JWT实例

注意,我这里使用回车、一般三部分都是通过标点进行分割的。

引入到mall-security并且添加一个配置文件。

org.springframework.bootspring-boot-starter-security添加一个登陆接口我们首先从登陆接口开始,一个最基本的controller接受参数。当然,用户名和密码肯定是不能为空的,校验完后交给service

断言可以理解为:若当前行不符合判断条件、则抛出异常。或者直接使用断言来抛出一个异常。比如账号不存在,直接抛出一个异常即可。

全局异常处理:全局异常处理,在全局统一拦截异常信息,并通过{code=500,message="errormessage"}的方式返回给前端做出提示即可。

Springboot对于全局异常的处理、简直是简单的不得了~

断言则是,判断某一条件是否成立、如果不成立则抛出异常的一种更加简单的方式。就不用每次都写thrownewxxxException

简而言之就是:一种非常优美的方式抛异常(偷懒的)

io.jsonwebtokenjjwt生成token我在上面的内容里面已经介绍了。我们的token必须要包含:

token检验包含:当前token是否有效(能顺利从token取出我们的sub)、以及检验其是否过期无效等。

@OverridepublicUmsAdminTokenBOumsAdminLogin(UmsAdminLoginParamparam){//通过用户名获取userDetailUserDetailsuserDetails=this.findUserDetailByUserName(param.getUsername());//基本校验用户名和密码if(!passwordEncoder.matches(param.getPassword(),userDetails.getPassword())){Asserts.fail("用户名密码错误");}//这里暂时不开启权限,后面再修改UsernamePasswordAuthenticationTokenauthentication=newUsernamePasswordAuthenticationToken(userDetails,null);//将构建的用户信息加入springsecuritycontext上下文SecurityContextHolder.getContext().setAuthentication(authentication);Stringtoken=defaultTokenServer.generateToken(userDetails);returnUmsAdminTokenBO.builder().token(token).tokenHeader(jwtConfig.getTokenHeader()).build();}SecurityConfig接下来。就是配置一个全局的SecurityConfig

publicclassSecurityConfigextendsWebSecurityConfigurerAdapter{}主要还是需要重写configure()方法。获取一个registry实例。将我们的拦截信息加入到里面。

然后我们每一个请求首先会进入JwtAuthenticationTokenFilter也就是我们上面写的这个。

检查当前请求有没有携带token要是带了token那就检查它,检查成功就从数据库查出来这个人。把这个人注入到我们的SpringSecurityContext里面。

要是没带、或者验证错误~。那上下文也就没有这个用户的信息了。所以这个请求只能返回403

这里使用的是:PasswordEncoder接口实现类下的BCryptPasswordEncoder,当然,你肯定要在使用之前要用@Bean

@BeanpublicPasswordEncoderpasswordEncoder(){returnnewBCryptPasswordEncoder();}

THE END
1.会员卡管理系统定制会员小程序会员卡系统会员积分系统,会员尊享,管理精准。定制会员卡管理系统,助您提升会员体验,促进客户忠诚度。? 联系专属顾问 注册了解 私域积分商城搭建,速优云低代码平台更有优势 速优云两大低代码平台能力,助力私域积分商城搭建 多端电商平台 - 内部福利平台(企业微信+OA) ...https://www.perfcloud.cn/gindex/21
2.如何使用PHP开发商城功能:搭建用户管理系统php教程在今天的互联网时代,电商成为一种非常流行的购物方式,越来越多的企业和个人选择开展在线商务。而建立一个完善的用户管理系统是商城开发的重要组成部分。本文将介绍如何使用PHP搭建一个用户管理系统,帮助开发者快速实现注册、登录、密码重置和个人信息管理等功能。 https://www.php.cn/faq/585127.html
3.微信小程序+源码+积分商城制作微信小程序+源码+积分商城开发覆盖全行业免费微信小程序+源码+积分商城 解决你制作微信小程序+源码+积分商城系统路上的巨大烦恼 ▽微信小程序+源码+积分商城系统制作平台能提供什么服务 既能定制微信小程序+源码+积分商城系统,也能自己搭建微信小程序+源码+积分商城系统 ▽不需要自己写代码 ...https://mall.fkw.com/blog/1212566
4.中科新辰中科新辰是致力于电商解决方案策划以及电商平台定制开发的服务商,专注为企业提供PHP/JAVA语言B2B2C商城、微信商城、APP商城、电商平台搭建、视频电商、小程序商城源码和定制等个性化开发服务。http://www.zokxc.com/
1.微商城制作(流程搭建和模板)微商城制作是指通过专业的技术和服务,为企业或个人创建一个基于微信平台的在线商城。这种商城可以让用户在微信环境中直接浏览商品、下单购买,实现便捷的电子商务交易。微商城以其低成本、高效率、易于推广等优势,成为中小企业和个体经营者拓展线上业务的重要工具。本文将详细介绍微商城的制作流程、搭建方法以及设计模板等...https://www.ihimall.cn/news/4241.html
2.怎么搭建小程序商城如何创建微信小程序,微信小程序商城的搭建是一个系统工程,既需要注重用户体验的便捷性,又要确保商城的稳定性和安全性。 01、小程序制作流程 02、微信小程序开发多少钱 03、微信小程序开通需要什么资质 01 小程序制作流程 第一步:注册小程序saas制作平台账号 ...https://blog.csdn.net/2401_86957301/article/details/143946614
3.商城系统建立:实战经验与深度解析基于实战经验,我深知技术实现是商城系统成功的关键。以专业视角,探讨如何通过技术创新提升用户体验与系统性能。 1. 架构设计优化 采用微服务架构,提升系统可扩展性与维护性,确保高可用性。 2. 安全性强化 加密技术保障数据传输安全,防火墙与入侵检测系统筑牢安全防线。 https://www.batmanit.cn/blog/j/28317.html
4.如何自建商城,怎么搭建自己的网上商城系统1,怎么搭建自己的网上商城系统 可以直接使用整站的商城系统。也可以承包给一些软件公司,自行开发商城系统。 2,怎么搭建微商城微信商城开发要注意什么 微商城是基于当前很受欢迎的微信的一种传媒方式中的一种商业运用,微信当前的火热是一个商机,基于微信的传播速度,及其简便等优点,为商家提供一个平台,在这个更简便的、方...http://shouzuofang.com/article/ejojsh.html
5.薪人薪事数字化培训:助力企业生产率提升30%由此可以看出,职级体系应该是一个“定制化”的工具,搭建职级系统必须要和公司的组织结构、业务性质、核心价值保持一致的,不同企业的职级体系都不完全相同。 二、如何搭建职级体系 接下来,通过两个职级体系实例来帮助大家更好的理解搭建技巧: (一)多通道职级体系怎么搭建? https://www.anzhuo.cn/mfr/p_46232
6.彩虹知识付费系统商城搭建一条龙我们相信,真正好的项目没有门槛!轻狸团队联合狐狸笔记,推出商业级知识付费商城系统:搭建一条龙服务,轻狸作为虚拟行业六年经验的老牌服务商,让您快速从搭建到落地运营,不需要懂技术,专业的事情交给专业的人! 一条龙搭建包运营1700+课源精美模板 包更新 https://www.caihongi.com/cai-hong-zhi.html
7.B2B2C多用户商城系统Java微服务uniapp商城源码专业二开Java商城源码专业二开,助力企业快速搭建自己的商城系统 2024-02-27 如何选择高质量可二开的Java商城源码?JooLun乔伦科技致力于Java商城快速开发框架的研发,为企业提供可以快速部署运营的商城系统。通用化商城系统功能完善,无行业限制,对于个性化的需求还可自行二次开发,Java商城源码为企业商城系统开发节省了大部分的时间。https://joolun.com/
8.管理者培训心得体会(精选17篇)学习培训是提高我们各方面能力的有效办法,但是平时坚持自学、经常学、系统学更不可缺,我将以这次培训提高为基础,养成良好的学习习惯,树立良好学风,不断在工作中学习,在学习中不断提高自己各方面能力,使自己真正具备执行管理职责的组织能力和完成工作任务的领导能力。https://www.yjbys.com/xindetihui/peixun/2446280.html
9.如何搭建考试系统如何搭建考试系统 一、系统的框架 考试系统主要由题库、在线考试、考后分析和试卷管理四个模块组成。 题库是考试系统的基础,主要功能包括: 试卷管理:包括试卷的创建、删除、修改、导出等功能。 用户管理:主要是进行管理员权限的分配,权限分配时要根据不同的角色对不同的功能进行定义。 https://www.xiaohuokeji.com/archives/xitongkaifa01/241
10....陌生人社交)论坛校园社区系统论坛小程序/社区小程序/商城论坛...让每个兴趣都有自己的落脚点,用兴趣连接用户,解决如何打造私域流量池难题; 丰富的圈子管理系统,助力每一位创业者实现精细化运营及成功; 商城 QYSNS内置完善的自营商城系统,0基础搭建高颜值商城; 完善的商城运营模式适用于任何行业,多模块智能商品推送并可配合社区发帖推送; ...https://cloud.tencent.com/developer/article/2355208