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

前端主要做一些格式的校验,比如用户名、密码的输入符不符合规范,是否为空,验证码输入是否正确,一般验证码的校验在前端,如果验证码都不匹配的话,则不需要调用登录接口,直接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不在服务端储存任何状态。

前、后端登录验证逻辑相关推荐

  1. 【VUE】vue实现登录滑动拼图验证的两种方法,纯前端组件验证以及前后端同时验证

    vue实现登录滑动拼图验证的两种方法: 第一种是纯前端组件验证,只能区分是人为操作还是机器操作. 第二种是前后端同时验证,这种方法加上后端校验相对会更安全一些.(注:在最底部加上了同时兼容移动端的方法 ...

  2. python实现用户登录注册界面_实现前后端登录注册界面

    本篇博客讲解如何实现前后端的简单登录注册界面,后端代码由node.js实现,主要阐述登录注册时网页工作原理.感兴趣的同学可以参考一下. 注册界面 功能: 判断用户是否输入邮箱,密码,验证密码(前端判断 ...

  3. SpringBoot Security 自定义登录验证逻辑+密码加盐

    密码加盐思路 JAVA 加盐加密方法_Teln_小凯的博客-CSDN博客 盐加密方法 @ApiOperation(value = "002-加密")@PreAuthorize(&q ...

  4. 服务器如何验证jwt,使用JWT实现前后端权限验证

    本帖最后由 菜肉果蔬 于 2018-11-26 16:23 编辑 一.JWT简介 JWT是json web token缩写.是一种基于JSON的.用于在网络上声明某种主张的令牌(token).JWT通 ...

  5. 微信、QQOAuth 2.0前后端登录代码

    由于不同的第三方平台的授权方式不同,包括授权的端点.授权的参数等等,因此,下面我们提供了分别用于QQ.微信.钉钉OAuth 2.0的前端和后端代码. 首先是QQ OAuth 2.0的前端代码,它使用Q ...

  6. 前后端分离业务逻辑常用封装函数(一)

    1.数组去空: function clear_arr_trim(array) {   for(var i = 0 ;i<array.length;i++){ if(array[i] == &qu ...

  7. 实战SSM_O2O商铺_16【商铺注册】前后端联调验证整体模块功能

    文章目录 概述 加入断点,开启DEBUG模式 查看结果 Github地址 概述 我们已经开发完了商铺注册功能,也做了单元测试,那么开启服务,做一次调测吧 加入断点,开启DEBUG模式 我们在注册商铺的 ...

  8. Spring Security自定义登录验证及登录返回结果

    Spring Security自定义登录验证及登录返回结果 一.功能描述 二.处理逻辑 简单流程 自定义UserDetails 自定义UserDetailsDAO 自定义UserDetailsServ ...

  9. Spring Security + SpringBoot + Mybatis-plus实现前后端分离的权限管理系统

    碎碎念 在学习Spring Security的时候,有收集到这样一张图,感觉描述还是很详尽的.有阅读了一下源码,个人理解,Spring Security默认对POST的/login请求做出响应,然后就 ...

最新文章

  1. C/C++面试题分享
  2. bitcoin cash的地址格式 cash addr 简介
  3. PHP的CI框架学习
  4. 中国丝绸市场投资规划及未来发展前景展望报告2022-2028年
  5. LINQ 的查询执行何时是延迟执行,何时是立即执行,以及查询的复用
  6. CentOS 7时间命令timedatectl
  7. Java -- 网络编程(一):Client与Server之间的数据传送
  8. What?一个 Dubbo 服务启动要两个小时!
  9. python 一句话校验软件 hash值
  10. js layui跳转页面_【WEB前端开辟】layui的iframe跳转链接与页面按钮跳转相干引见...
  11. 如何看到格式化的json文件
  12. 三电系统集成技术杂谈
  13. 2022-06-10:薯队长从北向南穿过一片红薯地(南北长M,东西宽N),红薯地被划分为1x1的方格, 他可以从北边的任何一个格子出发,到达南边的任何一个格子, 但每一步只能走到东南、正南、西南方向的
  14. MapReduce案例之天气分析
  15. 固态硬盘长期不通电数据丢失吗 数据丢失怎么恢复
  16. Android 黑科技(设备管理器等)
  17. 1.17 设置工作簿的页眉和页脚 [原创Excel教程]
  18. python中fact()是什么意思_python中fact函数是什么及如何使用?
  19. java 中0x的数值表示方式 本质上是什么意思?
  20. 显示器已入手,我快成显示器采购专家了

热门文章

  1. 英语测试题库软件,墨墨英语题库
  2. 筹备开酒吧?先看看这些知识
  3. 剑指offer进阶版刷题记录
  4. Linux开发常用ps命令选项详解
  5. SSD安装ubuntu系统的优化
  6. (吼吼吼)初学爬虫 +爬取豆瓣电影
  7. S老师 背包系统 装备系统 锻造系统 学习
  8. 2021年安全员-B证考试APP及安全员-B证证考试
  9. 微信小程序 首页的广告弹窗,只加载一次
  10. NYIST20级排位赛第一场 复盘