鉴权Cookies、授权session、token

2024-08-24 01:44

本文主要是介绍鉴权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是可以访问其他的域名(如公众号、小程序)

这篇关于鉴权Cookies、授权session、token的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1101094

相关文章

k8s admin用户生成token方式

《k8sadmin用户生成token方式》用户使用Kubernetes1.28创建admin命名空间并部署,通过ClusterRoleBinding为jenkins用户授权集群级权限,生成并获取其t... 目录k8s admin用户生成token创建一个admin的命名空间查看k8s namespace 的

JAVA实现Token自动续期机制的示例代码

《JAVA实现Token自动续期机制的示例代码》本文主要介绍了JAVA实现Token自动续期机制的示例代码,通过动态调整会话生命周期平衡安全性与用户体验,解决固定有效期Token带来的风险与不便,感兴... 目录1. 固定有效期Token的内在局限性2. 自动续期机制:兼顾安全与体验的解决方案3. 总结PS

Java MCP 的鉴权深度解析

《JavaMCP的鉴权深度解析》文章介绍JavaMCP鉴权的实现方式,指出客户端可通过queryString、header或env传递鉴权信息,服务器端支持工具单独鉴权、过滤器集中鉴权及启动时鉴权... 目录一、MCP Client 侧(负责传递,比较简单)(1)常见的 mcpServers json 配置

redis中session会话共享的三种方案

《redis中session会话共享的三种方案》本文探讨了分布式系统中Session共享的三种解决方案,包括粘性会话、Session复制以及基于Redis的集中存储,具有一定的参考价值,感兴趣的可以了... 目录三种解决方案粘性会话(Sticky Sessions)Session复制Redis统一存储Spr

SpringBoot结合Knife4j进行API分组授权管理配置详解

《SpringBoot结合Knife4j进行API分组授权管理配置详解》在现代的微服务架构中,API文档和授权管理是不可或缺的一部分,本文将介绍如何在SpringBoot应用中集成Knife4j,并进... 目录环境准备配置 Swagger配置 Swagger OpenAPI自定义 Swagger UI 底

使用Redis快速实现共享Session登录的详细步骤

《使用Redis快速实现共享Session登录的详细步骤》在Web开发中,Session通常用于存储用户的会话信息,允许用户在多个页面之间保持登录状态,Redis是一个开源的高性能键值数据库,广泛用于... 目录前言实现原理:步骤:使用Redis实现共享Session登录1. 引入Redis依赖2. 配置R

Python获取浏览器Cookies的四种方式小结

《Python获取浏览器Cookies的四种方式小结》在进行Web应用程序测试和开发时,获取浏览器Cookies是一项重要任务,本文我们介绍四种用Python获取浏览器Cookies的方式,具有一定的... 目录什么是 Cookie?1.使用Selenium库获取浏览器Cookies2.使用浏览器开发者工具

MySQL 用户创建与授权最佳实践

《MySQL用户创建与授权最佳实践》在MySQL中,用户管理和权限控制是数据库安全的重要组成部分,下面详细介绍如何在MySQL中创建用户并授予适当的权限,感兴趣的朋友跟随小编一起看看吧... 目录mysql 用户创建与授权详解一、MySQL用户管理基础1. 用户账户组成2. 查看现有用户二、创建用户1. 基

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结

SpringBoot项目中Redis存储Session对象序列化处理

《SpringBoot项目中Redis存储Session对象序列化处理》在SpringBoot项目中使用Redis存储Session时,对象的序列化和反序列化是关键步骤,下面我们就来讲讲如何在Spri... 目录一、为什么需要序列化处理二、Spring Boot 集成 Redis 存储 Session2.1