前、后端登录验证逻辑

简介: 前、后端登录验证逻辑

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

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

相关文章
|
9月前
|
BI
quickBI上传文件数据源中的替换文件后端逻辑是怎么实现的
quickBI上传后的所有文件 都会追加到物理表中,那么替换其中一个文件,怎么找到物理表里此原文件对应的数据呢,物理表里是需要建一个关联字段吗
|
2月前
|
前端开发 数据处理 API
后端开发:构建稳健与高效的服务器逻辑
后端开发:构建稳健与高效的服务器逻辑
|
26天前
|
JSON 算法 Go
go语言后端开发学习(一)——JWT的介绍以及基于JWT实现登录验证
go语言后端开发学习(一)——JWT的介绍以及基于JWT实现登录验证
|
9月前
|
存储 小程序 前端开发
【易售小程序项目】小程序私聊页面完善(带尾巴聊天气泡组件封装、滑至顶端获取历史聊天数据逻辑优化)【后端基于若依管理系统开发】
【易售小程序项目】小程序私聊页面完善(带尾巴聊天气泡组件封装、滑至顶端获取历史聊天数据逻辑优化)【后端基于若依管理系统开发】
40 0
|
前端开发 Go 数据库
|
中间件 数据库
【Node.js+koa--后端管理系统】用户登录接口设计 | 登录验证 | 登录返回凭证(令牌)
【Node.js+koa--后端管理系统】用户登录接口设计 | 登录验证 | 登录返回凭证(令牌)
257 0
【Node.js+koa--后端管理系统】用户登录接口设计 | 登录验证 | 登录返回凭证(令牌)
|
5天前
|
敏捷开发 存储 运维
深入理解后端开发中的微服务架构
在现代软件开发领域,微服务架构已经成为一种重要的设计模式。它通过将复杂的应用程序分解为一套小的、独立的服务来促进敏捷开发和快速迭代。本文旨在探索微服务架构的核心概念、优势与挑战,并结合具体案例分析其在实际应用中的表现。我们将从服务划分策略、通信机制,到数据一致性保障等方面,逐一剖析微服务架构的实施细节。此外,文章还将讨论微服务架构与传统单体架构的区别,以及如何平滑地从传统架构迁移至微服务架构。
|
10天前
|
Kubernetes 持续交付 Docker
现代后端开发中的微服务架构与容器化技术
本文探讨了现代后端开发中微服务架构与容器化技术的重要性和应用。微服务架构通过服务的拆分和独立部署提升了系统的灵活性和可维护性,而容器化技术则为微服务的快速部署和管理提供了解决方案。文章深入分析了微服务架构的优势、挑战以及如何利用容器化技术来支持微服务架构的实现。最后,通过实际案例展示了微服务与容器化技术在提升应用开发效率和系统稳定性方面的应用实践。【7月更文挑战第5天】
|
10天前
|
存储 缓存 负载均衡
高效后端开发中的架构设计与优化策略
在当今快速发展的技术环境中,高效的后端开发不仅仅依赖于编程技能,更需要精心设计的架构和优化策略。本文探讨了如何通过合理的架构设计和优化策略,提升后端系统的性能和可维护性,以应对复杂的业务需求和大规模的用户访问。【7月更文挑战第5天】
19 1
|
11天前
|
数据管理 物联网 开发者
现代化后端开发中的微服务架构设计与实现
在当今快速发展的软件开发领域,微服务架构已成为构建高效、可扩展和灵活的后端系统的重要方式。本文将探讨微服务架构的设计原则、实现方法以及应用场景,帮助开发者理解如何在项目中成功应用微服务。【7月更文挑战第4天】
25 2

热门文章

最新文章