9.前后端的身份认证

news2024/10/5 19:18:35

1  web开发模式

开发模式有两种,一种是服务端直接返回html字符串,另一种是前后端分类

服务端直接返回html字符串是这样的

这样做的优缺点如下

  • 优点
    • 加载页面快,这样会让设备的能耗减小,对于移动端来讲更省电
    • 利于搜索引擎获取数据(SEO),使用这种方式你的网站更有可能排在前面
  • 缺点
    • 会占用过多的服务器资源
    • 开发效率低

前后端分离的优缺点如下

  • 优点
    • 开发效率高
    • 服务器压力小
  • 缺点
    • 不利于SEO

交互性弱,需要SEO 时最好使用 服务端直接返回html字符串 模式,比如公司官网

交互性强,不需要SEO 时最好使用前后端分离的模式,比如后台管理系统

根据需要可以结合两种模式用于同一个网站,比如首页服务器渲染,其余前后端分离

2  身份认证

登录账户就是身份认证的过程,可以有不同的方式,比如手机验证码登录,邮箱密码登录,二维码登录。身份认证后可以给不同的用户不同的体验

HTTP协议拥有无状态性,每一次请求都是独立的,服务器不会保留每一次的请求状态。所以在登录后,服务端不会记录登录信息

为了突破HTTP协议的无状态性,从而记录请求的用户信息,在这个过程中我们一般会使用session,cookie,JWT,这三种技术都相当于是超市的会员卡

不同的开发模式下推荐使用不同的技术,服务端渲染推荐使用session,前后端分离推荐使用JWT

cookie是存储在用户浏览器中一段不超过4KB的字符串(每一段cookie不超过,不是总共不超过4KB),字符串中包含多个键值对,这些信息用于控制cookie的有效期,安全性,使用范围等

不同域名下的cookie各自独立,每当客户端发起请求时,客户端会自动将当前域名下的所有未过期的cookie一同发送到服务端

在客户端首次请求时,服务端会通过响应头的方式响应cookie,之后cookie会自动存储在客户端的浏览器

之后再次请求时,客户端会通过请求头的方式将cookie发送给客户端

 

cookie不具有安全性,所以一些敏感数据不建议放在cookie中,比如用户名与密码

cookie有下面几个特点

  • 每次请求自动发送
  • 每个cookie根据域名独立
  • 存在过期时限
  • 每一个cookie最大4KB(不是所有cookie最大4KB)
  • 不安全

2.2  session

session需要在服务端存储一些数据。相较于cookie,session更加安全

在客户端首次请求时,服务端会响应给客户端一个cookie,同时在服务端中开辟一个存储空间用于存储用户数据并存储

在客户端再次请求时,客户端会把cookie发到服务端,服务端通过发过来的cookie确定用户数据存储的地方,然后将存储的内容响应给客户端

2.3  JWT

JWT的全称是JSON Web Token

session需要配合cookie才能实现,默认情况下cookie不支持跨域访问,当涉及到跨域的时候使用session比较麻烦,如果不涉及到跨域建议使用session(JWT将信息存在客户端,并不是很安全)

再次发送的时候请求头的字符键是 Authorization ,值是Bearer+空格,然后写token,比如

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IlN1eXUiLCJpYXQiOjE2NzI3MzgyMDAsImV4cCI6MTY3MjczODIzMH0.CSXlREeK3U8qw8cNQ1wyysIGQXvvBIRuGOY5RXnkbyA

JWT的处理方式与cookie类似

JWT通常由三部分组成,分别是Header(头部),Payload(有效荷载),Signature(签名) 这三者用 点 分隔 ,比如 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IlN1eXUiLCJpYXQiOjE2NzI3MzgyMDAsImV4cCI6MTY3MjczODIzMH0.CSXlREeK3U8qw8cNQ1wyysIGQXvvBIRuGOY5RXnkbyA

只有Payload是用户信息,Header和Signature是确保安全用的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/589468.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

北京筑龙吴英礼:ChatGPT在采购与招标中的应用

近日,由中国招标投标协会举办的“人工智能对招标采购数字化发展的机遇与挑战交流座谈会”在北京召开。北京筑龙CTO吴英礼受邀出席,围绕"ChatGPT在招标投标中的应用"进行探讨,从ChatGPT背后的的技术、ChatGPT助力招标投标行业数字化…

【C++】-8- string〔常见接口函数使用〕

文章目录 概览标准库中的string类「string类(了解)」﹝编码﹞ 「string类的常用函数接口」﹝1.string类对象的常见构造﹞﹝2.string类对象的修改操作﹞‹ c_str ›‹ npos ›‹ string结构 › ﹝3.string类对象的容量操作﹞‹ clear ›‹ reserve ›‹ r…

Pulsar 负载均衡与transaction_coordinator_assign

背景与现状 TC加载到哪个broker上取决于transaction_coordinator_assign-partition-${TC ID}分区加载到哪个broker上。 默认transaction_coordinator_assign有16个分区,因此默认有16个TC,我们需要根据集群机器/broker数目来设置合理的TC个数。 为了保证…

如何使用递归 Grep 命令在目录中搜索?

在 Linux 系统中,grep 是一个强大的文本搜索工具,可以用于在文件中查找指定的文本模式。当需要在目录及其子目录中搜索特定的文本时,可以使用递归 grep 命令来快速定位目标文件。本文将详细介绍如何使用递归 grep 命令来搜索目录中的文件。 递…

如何搭建第一个SpringBoot+MyBatis项目

🙈作者简介:练习时长两年半的Java up主 🙉个人主页:程序员老茶 🙊 ps:点赞👍是免费的,却可以让写博客的作者开兴好久好久😎 📚系列专栏:Java全栈,…

ChatGPT已能模仿任何写作风格,让你的自媒体快速起号

我认识的一两个技术大佬目前失业在家,压力不小。对于现在的就业市场来说,再找工作,高不成低不就。他们的薪资,一般企业无法承受,大厂岗位又在缩减。今年真正感受到了寒冬。 对于我们还有饭吃的程序员,现在不…

【Linux网络服务】Apache网页优化

Apache网页优化 一、网页压缩1.1网页压缩步骤 二、网页缓存三、隐藏版本信息五、Apache防盗链 一、网页压缩 在企业中,部署Apache后只采用默认的配置参数,会引发网站很多问题,换言之默认配置是针对以前较低的服务器配置的,以前的…

如何通过自学成为一名白帽黑客(网安工程师)

从事网络安全这么多年,总是会被问到很多奇奇怪怪的问题: 「叔叔,我Steam账号被盗了,能帮忙找回吗?我给你发红包」 「我的手机被监控了,生活和工作受到了严重影响,该怎么解决?」 「…

学会这两件事,让你在人生路上走得更远

人生,就是一场不断前行,没有退路的旅行,也是一场不断醒悟的过程。 看透,然后醒悟;放下,然后幸福。 有些事,看淡就好;有些人,看穿就行。 不管世事如何艰难,只要…

Compose也能开发iOS了,快来体验~

前言 在之前,我们已经体验了Compose for Desktop 与 Compose for Web,目前Compose for iOS 已经有尚未开放的实验性API,乐观估计今年年底将会发布Compose for iOS。同时Kotlin也表示将在2023年发布KMM的稳定版本。 届时Compose-jb KMM 将实…

腾讯云4核8G服务器12M带宽支持多少人访问?

腾讯云轻量4核8G12M服务器配置446元一年,518元12个月,腾讯云轻量应用服务器具有100%CPU性能,系统盘为180GB SSD盘,12M带宽下载速度1536KB/秒,月流量2000GB,折合每天66.6GB流量,超出月流量包的流…

解锁接口关联测试新技能!HttpRunner教你如何轻松搞定。

目录 前言: 一、安装HttpRunner 二、编写测试用例 三、运行测试用例 四、实现接口关联测试 五、总结 前言: 在接口自动化测试中,一个常见的场景就是需要对多个接口进行关联测试,例如登录后获取token,再利用token…

如何自学黑客?零基础自学黑客需要多久?

问题一:黑客如何学起? 必须从学习者的角度来看,如果你是一个已经学过编程,通晓几门语言的人那么这个答案就会和一个从没有接触过的计算机,甚至连什么叫高级语言还不知道的人有所区别的对待。 这就像是登珠穆朗玛峰一…

ARM实验5-流水灯仿真实验

一、实验名称:流水灯仿真实验 二、实验目的: 掌握ARM处理器的输入输出接口。掌握通过MDK提供的仿真功能,实现系统的仿真运行。通过该编程实验,进一步巩固和强化学生ARM汇编编程的能,ARM应用程序框架,培养…

chatgpt赋能python:Python中的主函数调用其它函数

Python中的主函数调用其它函数 Python语言是一种高级编程语言,它被广泛应用于大数据处理、人工智能、数据分析、网络编程以及Web开发等领域中。在Python中,我们可以使用函数来封装复杂的业务逻辑,使代码更加可读、可维护和可扩展。在本文中&…

基于docker部署testlink并集成mantis

使用docker pull命令拉取需要的镜像。由于testlink和mantis都需要存储相关数据,所以这里可以看到还拉取了一个mysql镜像。 # docker pull bitnami/testlink:1.9.16-r8 # docker pull vimagick/mantisbt # docker pull mysql:5.7.20 使用docker network命令中创建…

Flutter重构开发

最近学习了flutter技术,然后用flutter技术重构了线上项目的首页板块,较深入的理解flutter的状态管理和ui组件的使用,总结下遇到的几点问题。 - 使用gex的controller报错 Don’t use one refreshController to multiple SmartRefresher,It w…

2021年长三角高校数学建模竞赛B题锅炉水冷壁温度曲线解题全过程文档及程序

2021年长三角高校数学建模竞赛 B题 锅炉水冷壁温度曲线 原题再现: 在燃煤发电过程中,锅炉是一种重要的热能动力设备。它通过在炉膛中燃烧煤粉释放热量,将水加热成一定温度(或压力)的蒸汽,蒸汽再推动汽轮机…

C4d渲染农场的定义、应用领域和未来发展趋势

Cinema 4D(C4D)是一款常用于3D动画、建模和渲染的软件,由Maxon Computer开发。随着CG行业的不断发展和应用场景的多样化,C4D渲染农场成为了CG制作中不可或缺的一环。本文将深入介绍C4D渲染农场的概念、特点、应用以及未来发展趋势…

信创办公–基于WPS的EXCEL最佳实践系列 (规整数据摆放)

信创办公–基于WPS的EXCEL最佳实践系列 (规整数据摆放) 目录 应用背景操作步骤1、数据排序2、例如:职务按照 经理-主任-职员 排序3、排列第二种方法4、实操案例5、案例练习一方法一:通过公式函数增加辅助列方法二:用辅…