鉴权Cookies、授权session、token

news2024/9/25 9:38:24

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.coloradmin.cn/o/2067665.html

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

相关文章

C++设计模式3:工厂模式

工厂模式都是在那种有着大量类的程序里面使用的,比如我突然要产生许多的类,这时候就可以用工厂模式,工厂模式有如下三种类型。 简单工厂 用户输入实例化的信息(比如产品名称),向工厂申请对象,工厂返回相应的对象&…

npm install报错,解决记录:11个步骤诊断和解决问题

在处理npm install报错时,可以遵循以下步骤来诊断和解决问题: 查看错误信息: 错误信息通常会给出问题的线索,例如依赖包版本冲突、网络问题、权限问题等。 更新npm和Node.js: 首先尝试更新npm和Node.js到最新版本&…

地平线—征程2(Journey 2-J2)芯片详解(16)—DDR系统

写在前面 本系列文章主要讲解地平线征程2(Journey 2-J2)芯片的相关知识,希望能帮助更多的同学认识和了解征程2(Journey 2-J2)芯片。 若有相关问题,欢迎评论沟通,共同进步。(*^▽^*) 错过其他章节的同学可以电梯直达目录↓↓↓ 地平线—征程2(Journey 2-J2)芯片详解…

新开发体育直播平台的创业指南:降低赛事版权成本方法

在全球化浪潮下,体育赛事已成为连接世界各地观众的情感纽带,其巨大的影响力不仅激发了全球观众的热情,也催生了体育赛事直播行业的蓬勃发展。然而,高昂的版权费用如同一道难以逾越的门槛,让众多新进入者和小型体育直播…

【与C++的邂逅】--- 类与对象(下)

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏: 与C的邂逅 本节我们继续学习类与对象下,下面给出本节内容大纲。 🏠 再谈构造 📌 构造函数体赋值 在创建对象时&…

【图形学】TA之路-基于Unity Shader编程之初体验

学习shader之前你必须知道的事情: Unity开发引擎、Direct3D、Shader他们之间的关系 Direct3D 是一个底层图形 API,它直接与 GPU (显卡)交互,提供了访问硬件加速功能的接口。Unity 开发引擎,它封装了很多底…

[Linux] 认识系统服务(daemon)

参考:《鸟哥的Linux私房菜》 一、什么是 daemon 与服务(service) 在英语中的daemon就有守护进程,后台程序的意思。简单来说就是一直在后台运行的进程,我们就称之为服务(service),或者是守护进程(daemon)。…

Java爬虫图像处理:从获取到解析

在互联网时代,数据的价值日益凸显,而爬虫技术作为获取网络数据的重要手段,其应用范围越来越广泛。本文将探讨Java爬虫在图像处理方面的应用,包括如何从网络中获取图像数据,以及如何对这些数据进行解析和处理。 Java爬…

实现Kruskal算法连通游戏地图地牢

前置知识 c分享|并查集从入门到出门 - 力扣(LeetCode) 彻底搞懂克鲁斯卡尔(Kruskal)算法(附C代码实现) - QuanHa - 博客园 (cnblogs.com) 白色点矩形是地牢,其中白线是按照krsukal…

网络编程知识点总结

物理链路网络运输会话表示应用 物链网运会表应 实际的数据帧 TCP和UDP的异同(笔试面试) 主机:host 转换:to 网络:network uint32_t htonl(uint32_t hostlong); //将4字节无符号整数的主机字节序转换为网络字节序&a…

云计算实训32——roles基本用法、使用剧本安装nginx、使用roles实现lnmp

一、安装nginx并更改其端口 编辑hosts配置文件 [rootmo ~]# vim /etc/ansible/hosts 创建目录 [rootmo ~]# mkdir /etc/ansible/playbook 编辑配置文件 [rootmo ~]# vim /etc/ansible/playbook/nginx.yml 执行测试 [rootmo ~]# ansible-playbook /etc/ansible/playbook/n…

菜鸟的进击之.net6控制台应用程序接收参数

1、新建控制台应用程序,新建-添加项目-控制台应用 2、3、下一步,填写项目名称和代码存放的位置 3、下一步,框架选择.net 6 ,点击创建 4、然后项目就创建完成啦, 5、在可以直接在Program.cs写方法一些简单的逻辑&#x…

Rustrover、IDEA 的 Rust 类型不显示(已解决)

关键词:rustrover 类型不显示,rustrover 不显示类型,IntelliJ IDEA Rust 类型不显示,IntelliJ IDEA Rust 不显示类型 若移动端访问不佳,请使用 –> Github版 背景 博主手欠,使用 IntelliJ IDEA 时&am…

四款流行英文翻译工具,助你轻松应对翻译难题

作为一名教培行业的工作人员,我经常需要处理大量的英文文件,从教材到学术论文,再到各种国际交流的资料。翻译工具成了我工作中不可或缺的帮手。今天,我就来跟大家聊聊我用过的几款翻译工具在翻译英文文件时的表现如何呢&#xff1…

超越IP-Adapter!阿里提出UniPortrait,可通过文本定制生成高保真的单人或多人图像。

阿里提出UniPortrait,能根据用户提供的文本描述,快速生成既忠实于原图又能灵活调整的个性化人像,用户甚至可以通过简单的句子来描述多个不同的人物,而不需要一一指定每个人的位置。这种设计大大简化了用户的操作,提升了…

手机游玩植物大战僵尸杂交版V2.3.7最新版教程(文章末尾免费直接下载链接)

手机游玩植物大战僵尸杂交版V2.3.7最新版教程 【V2.3.7全面升级】植物大战僵尸杂交版:跨平台终极安装指南 - 苹果、安卓、电脑、电视兼容,界面革新,16卡槽扩展,高分辨率支持,BUG修复,畅享游戏乐趣 前言 …

市盈率的概念

写篇有关市盈率的【不务正业】的内容。 重要公式 市盈率 官方的定义 平均市盈率=∑(收盘价发行数量)/∑(每股收益发行数量),统计时剔除亏损及暂停上市的上市公司。 静态市盈率 滚动市盈率(TTM) 股票市盈率的意义 如果某股票有较…

探索数据结构:图(二)之图的遍历,Kruskal与Prim算法

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:数据结构与算法 贝蒂的主页:Betty’s blog 1. 图的遍历 图的遍历方式一般分为两种:深度优先遍历与广度…

gurobi中引入松弛变量和剩余变量的用法

文章目录 1. 松弛变量:用于“≤”不等式约束数学表达式 2. 剩余变量:用于“≥”不等式约束数学表达式 3. 目标函数中的松弛变量数学表达式 4. Gurobi中的实现对于“≤”不等式的松弛变量:对于“≥”不等式的剩余变量: 5. 总结 在G…

p2p、分布式,区块链笔记: IPFS库Helia的文件系统Unix File System (UnixFS)

Unix File System (UnixFS) Helia中定义一个UnixFS类用于文件处理。The Unix File System (UnixFS) is the data format used to represent files and all their links and metadata in IPFS.。UnixFS中的方法封装了常见的文件系统操作,使得在去中心化文件系统中处…