当前位置: 首页 > news >正文

鉴权Cookies、授权session、token

2 鉴权、授权

区别:一个存在浏览器,一个存在服务器,session存到服务端当中

问1:http协议是一个典型的无状态协议,无记忆,那第一次登录下次是不是还要登录一次?

ANS:不需要

        因为Cookies 和session作用:是让浏览器变得有状态,记住用户是谁,从而追踪用户

问2:浏览器登录了某些网站(优酷视频),下次访问为什么不要登录?

ANS:授权:相当于给一个通行证

           鉴权:鉴定是否有权限访问(判断有没有通行证)

 2.1 Cookies 和session

流程: 

        用户发送登录请求(login页面,user=xiaoyi  password=123456),一般会加密,校验通过,服务器用如字典存储所有登陆过的账户 user = ["xiaoyi" ,"xiaoer"],登录的账户存储起来就是session

        响应信息中会有特殊这段set-cookie:sessionid = ‘xiaoyi’:放到响应头信息中,不一定为sessionid可以自定义,表示是谁发送给我,我把谁存储起来了,再把用户返回给你,会存到浏览器cookie,sessionid = ‘xiaoyi’:  sessionid会和域名绑定一起

        cookie不一定和session绑定

Cookie

        Cookie 是在 HTTP 协议下,服务器或脚本可以维护用户信息的一种方式。Cookie 是由Web 服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息。无论何时用户访问到服务器,都会带上该服务器的cookie信息。
        一般 Cookie 都是有效期的, Cookie 只在浏览器上保存一段规定的时间,一旦超过规定的时间,该 Cookie 就会被系统清除

Session

        Session将数据存储在服务器中,服务器会为每一个用户创建一条session,用户访问服务器的时候需要拿着sessionid去表明自己的身份。
        Session的实现是基于Cookie,Session需要借助于Cookie来存储sessionlD。

 2.2 token

 

2.2.1什么是token?

        token是“令牌”、“门票”,是服务端生成的一串字符串,作为客户端进行请求的一个标识,凭证

这里有一份接口文档:
http://www.baidu.com/docs/

访问其中一个接口:

GET http://www.baidu.com/interfaces/

看不到里面的数据。会出现错误信息,缺少用户信息。没有权限
带上 JWT token 就可以得到里面的数据。
{
"token":
"ey10exAi0i]KV1QiLcIhbGci0iJIUzIINi19.eyJ1c2VyX27kIj0xLCJ1C2VybmFtZSI6ImX7bW9UMSISImV4CCI6MTU5MDYONzYxMCwizw1hawwioiisZW1vbjEwMEBxcs5jb20ifQ.GTf7QfYx6swx63E6-TIrh3AIVvDWW8cKmFwhlPilshAk".}
"user_id":1,
"username": "lemon1"

postman登录之后再次访问网址,不会主动登录,其他接口需要加入token

token的数据包含许多信息:你是谁,包含密码,token失效时间,加密方式等等

 2.2.2 token和session的区别

        cookie:再次请求后端会主动带上cookie,自动完成校验操作,需要去服务器查询,cookie是和域名绑定的关系,那该cookie去访问其他网址,是不能的

        tooken:访问接口,基于用户名生成token一般不会存储到其本地(服务器),第二次访问时需要手动的传入token,其不用本地存储不需要校验,这样服务器不需要消耗存储资源和查询资源,通过解密算法进行解密用户信息就可以直接拿到,消耗的是计算资源 ,速度会快些,当服务器有多个域名,带上token是可以访问其他的域名(如公众号、小程序)


http://www.mrgr.cn/news/6343.html

相关文章:

  • 2024 Python3.10 系统入门+进阶(七):字符串及其常用操作详解上篇
  • “CSS”第一步——WEB开发系列13
  • Python入门教程(超详细)
  • Unity URP Shader 修改深度让人物不再被地面遮挡
  • 基于python的坦克游戏的设计与实现
  • 适应CLIP作为图像去雾的聚合指导
  • 在国产芯片上实现YOLOv5/v8图像AI识别-【2.5】yolov8使用C++部署在RK3588更多内容见视频
  • 机器学习辅助复合材料预测,性能管理优化创新材料,这种王炸般的组合,还真是大开眼界!
  • Android Forensics with Belkasoft
  • mov转mp4,这几款软件轻松转换格式!
  • 基于鸿蒙Next模拟扫图识物的一个过程
  • MySQL(四)——常用函数
  • 驾校预约学习系统--论文pf
  • 洛谷P9235 [蓝桥杯 2023 省 A] 网络稳定性
  • libcurl遇到的问题总结
  • React渲染机制和源码初探(二)
  • C++类和对象(2)
  • MySQL数据库(二)
  • 数据库管理-第232期 初探OpenTenBase(20240819)
  • 计算机视觉与视觉大模型对板书检测效果对比