前、后端登录验证逻辑
一、前端先进行第一层校验
前端主要做一些格式的校验,比如用户名、密码的输入符不符合规范,是否为空,验证码输入是否正确,一般验证码的校验在前端,如果验证码都不匹配的话,则不需要调用登录接口,直接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不在服务端储存任何状态。
前、后端登录验证逻辑相关推荐
- 【VUE】vue实现登录滑动拼图验证的两种方法,纯前端组件验证以及前后端同时验证
vue实现登录滑动拼图验证的两种方法: 第一种是纯前端组件验证,只能区分是人为操作还是机器操作. 第二种是前后端同时验证,这种方法加上后端校验相对会更安全一些.(注:在最底部加上了同时兼容移动端的方法 ...
- python实现用户登录注册界面_实现前后端登录注册界面
本篇博客讲解如何实现前后端的简单登录注册界面,后端代码由node.js实现,主要阐述登录注册时网页工作原理.感兴趣的同学可以参考一下. 注册界面 功能: 判断用户是否输入邮箱,密码,验证密码(前端判断 ...
- SpringBoot Security 自定义登录验证逻辑+密码加盐
密码加盐思路 JAVA 加盐加密方法_Teln_小凯的博客-CSDN博客 盐加密方法 @ApiOperation(value = "002-加密")@PreAuthorize(&q ...
- 服务器如何验证jwt,使用JWT实现前后端权限验证
本帖最后由 菜肉果蔬 于 2018-11-26 16:23 编辑 一.JWT简介 JWT是json web token缩写.是一种基于JSON的.用于在网络上声明某种主张的令牌(token).JWT通 ...
- 微信、QQOAuth 2.0前后端登录代码
由于不同的第三方平台的授权方式不同,包括授权的端点.授权的参数等等,因此,下面我们提供了分别用于QQ.微信.钉钉OAuth 2.0的前端和后端代码. 首先是QQ OAuth 2.0的前端代码,它使用Q ...
- 前后端分离业务逻辑常用封装函数(一)
1.数组去空: function clear_arr_trim(array) { for(var i = 0 ;i<array.length;i++){ if(array[i] == &qu ...
- 实战SSM_O2O商铺_16【商铺注册】前后端联调验证整体模块功能
文章目录 概述 加入断点,开启DEBUG模式 查看结果 Github地址 概述 我们已经开发完了商铺注册功能,也做了单元测试,那么开启服务,做一次调测吧 加入断点,开启DEBUG模式 我们在注册商铺的 ...
- Spring Security自定义登录验证及登录返回结果
Spring Security自定义登录验证及登录返回结果 一.功能描述 二.处理逻辑 简单流程 自定义UserDetails 自定义UserDetailsDAO 自定义UserDetailsServ ...
- Spring Security + SpringBoot + Mybatis-plus实现前后端分离的权限管理系统
碎碎念 在学习Spring Security的时候,有收集到这样一张图,感觉描述还是很详尽的.有阅读了一下源码,个人理解,Spring Security默认对POST的/login请求做出响应,然后就 ...
最新文章
- C/C++面试题分享
- bitcoin cash的地址格式 cash addr 简介
- PHP的CI框架学习
- 中国丝绸市场投资规划及未来发展前景展望报告2022-2028年
- LINQ 的查询执行何时是延迟执行,何时是立即执行,以及查询的复用
- CentOS 7时间命令timedatectl
- Java -- 网络编程(一):Client与Server之间的数据传送
- What?一个 Dubbo 服务启动要两个小时!
- python 一句话校验软件 hash值
- js layui跳转页面_【WEB前端开辟】layui的iframe跳转链接与页面按钮跳转相干引见...
- 如何看到格式化的json文件
- 三电系统集成技术杂谈
- 2022-06-10:薯队长从北向南穿过一片红薯地(南北长M,东西宽N),红薯地被划分为1x1的方格, 他可以从北边的任何一个格子出发,到达南边的任何一个格子, 但每一步只能走到东南、正南、西南方向的
- MapReduce案例之天气分析
- 固态硬盘长期不通电数据丢失吗 数据丢失怎么恢复
- Android 黑科技(设备管理器等)
- 1.17 设置工作簿的页眉和页脚 [原创Excel教程]
- python中fact()是什么意思_python中fact函数是什么及如何使用?
- java 中0x的数值表示方式 本质上是什么意思?
- 显示器已入手,我快成显示器采购专家了