服务器判断客户端的用户名和密码(token的身份验证)

本文深入解析HTTP协议的无状态特性,介绍如何通过Cookie和Token实现客户端和服务端的身份验证过程,探讨基于Token的身份验证方法及其在服务端无须存储登录记录的优势。

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

 HTTP 是一种没有状态的协议,也就是它并不知道是谁是访问应用。这里我们把用户看成是客户端,客户端使用用户名还有密码通过了身份验证,不过下回这个客户端再发送请求时候,还得再验证一下,解决的方法就是,当用户请求登录的时候,如果没有问题,我们在服务端生成一条记录,这个记录里可以说明一下登录的用户是谁,然后把这条记录的 ID 号发送给客户端,客户端收到以后把这个 ID 号存储在 Cookie 里,下次这个用户再向服务端发送请求的时候,可以带着这个 Cookie ,这样服务端会验证一个这个 Cookie 里的信息,看看能不能在服务端这里找到对应的记录,如果可以,说明用户已经通过了身份验证,就把用户请求的数据返回给客户端

使用基于 Token 的身份验证方法,在服务端不需要存储用户的登录记录。大概的流程是这样的:

(1)当用户首次登录成功之后, 服务器端就会生成一个 token 值. 1.会在服务器保存token值(保存在数据库中) 2.将这个token值返回给客户端.

(2)  客户端拿到 token 值之后,一般保存在两个位置 : 1. 将 token 保存在 cookie 中; 2.将 token 保存在沙盒中,作为一个公共参数传递.  

 (3)公共参数: 每一个网络请求都需要的参数! 一般公共参数有很多都是"可选"参数!,公共参数附带的越多,越利于后台监测用户,数据挖掘会使用到监测到的数据.

(4)以后客户端再次发送网络请求(一般不是登录请求)的时候,就会将这个 token 值附带到参数中发送给服务器.

(5)服务器接收到客户端的请求之后,会取出token值与保存在本地(数据库)中的token值做对比!

(6)如果两个 token 值相同 :说明用户登录成功过!当前用户处于登录状态!

(7)如果没有这个 token 值, 没有登录成功.

(8)如果 token 值不同: 说明原来的登录信息已经失效,让用户重新登录.

传递token的作用:防止表单重复提交

  主要原理是:用户提交表单后,会携带token到服务器,服务器将session中的token和用户请求带过来的token进行比较,如果相同,会将session中的token进行更新。若用户重复提交,则用户之后发过来的请求的token和服务器session中的token是不一致的,所以会导致之后的表单提交操作失败

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值