前、后端登录验证逻辑

博客介绍了登录校验流程,前端先进行格式校验,如用户名、密码、验证码等,符合规范则调用后端接口。后端登录接口用Spring Security认证,有状态登录靠session,无状态jwt登录生成token。还阐述了jwt登录可避免CSRF攻击,更适合分布式项目。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前端先进行第一层校验

        前端主要做一些格式的校验,比如用户名、密码的输入符不符合规范,是否为空,验证码输入是否正确,一般验证码的校验在前端,如果验证码都不匹配的话,则不需要调用登录接口,直接return,如果后端给的是图片地址,也可以放在参数中,在后端进行判断。

        登陆前,判断是否记住密码(true or false),如果为true,则把用户名密码存入缓存;

        当用户输入的格式都符合规范时可以调用,一般传入用户名(username),密码(password),code(验证码)从后端拿回code(状态码),后面要用到,直接发送请求后端接口。

二、后端进行的校验

        后端登录接口,这里用的Spring Security进行认证,登录状态可以分两种,一种是有状态的登录,要求服务器端返回session信息,通过sessionid进行连接,每次请求浏览器默认带上sessionid,

        还有一种是无状态的jwt登录,当用户通过账号密码验证时,后端生成一个token,浏览器每次请求默认带上这个token,服务端只需要每次解析这个token即可判断用户是否登录,

jwq登录的优点

1、有效避免了 CSRF 攻击,CSRF(Cross Site Request Forgery) 一般被翻译为 跨站请求伪造,属于网络攻击领域范围。相比于 SQL 脚本注入、XSS 等安全攻击方式,CSRF 的知名度并没有它们高。但是,它的确是我们开发系统时必须要考虑的安全隐患。就连业内技术标杆 Google 的产品 Gmail 也曾在 2007 年的时候爆出过 CSRF 漏洞,这给 Gmail 的用户造成了很大的损失。

        那么究竟什么是跨站请求伪造呢? 简单来说就是用你的身份去做一些事情,当你登录了网站时,如果使用的是session连接的,sessionid存在与cookie里,而cookie是很容易获取的那么别人也可以通过一些途径,比如链接;去获取你的sessionid,拿到了以后就可以使用你的身份去和服务端进行一个会话,进行转账等请求,jwt则完全不依赖cookie,所以可以避免CSRF攻击

 2、jwt更适合分布式的项目,因为它是无状态的,当你有多个服务器时,在使用session进行连接时,你需要去进行一个session共享,而jwt不在服务端储存任何状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海上生日朋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值