鉴权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

相关文章

【Shiro】Shiro 的学习教程(二)之认证、授权源码分析

目录 1、背景2、相关类图3、解析3.1、加载、解析阶段3.2、认证阶段3.3、授权阶段 1、背景 继上节代码,通过 debug 进行 shiro 源码分析。 2、相关类图 debug 之前,先了解下一些类的结构图: ①:SecurityManager:安全管理器 DefaultSecurityManager: RememberMeManager:实现【记住我】功能

Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.B

一个bug日志 FATAL EXCEPTION: main03-25 14:24:07.724: E/AndroidRuntime(4135): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.syyx.jingubang.ky/com.anguotech.android.activity.Init

SIGMOD-24概览Part7: Industry Session (Graph Data Management)

👇BG3: A Cost Effective and I/O Efficient Graph Database in ByteDance 🏛机构:字节 ➡️领域: Information systems → Data management systemsStorage management 📚摘要:介绍了字节新提出的ByteGraph 3.0(BG3)模型,用来处理大规模图结构数据 背景

spring security 中的授权使用

一、认证     身份认证,就是判断一个用户是否为合法用户的处理过程。Spring Security 中支持多种不同方式的认证,但是无论开发者使用那种方式认证,都不会影响授权功能使用。因为 SpringSecurity 很好做到了认证和授权解耦。   二、授权     授权,即访问控制,控制谁能访问哪些资源。简单的理解授权就是根据系统提前设置好的规则,给用户分配可以访问某一个资源的

flask-login 生成 cookie,session

flask-login 生成 cookie,session Flask-Login login_user() 显示来自 Set-Cookie 标头的加密 cookie # 模拟一个用户类class User(UserMixin):def __init__(self, id):self.id = id@app.route('/login')def login():# 模拟用户登录过程user

【NodeJS】Unexpected token (109:0) 返回错误码500

刚开始报错是这样的: Unexpected token call 是什么我没看懂,但我发现 span.label.lable-success 后面的 #[i+1] 写错了,应该是 #{i+1} 改成完这个错误后又是一个错误提示: What? Unexpected token (109:0) 返回错误码500是什么鬼 我先将自己这段源码的 - if ... - else 检查下

解决OAuth Token,点击退出登录报404问题

首先,认证服务器发送请求 http://auth.test.com:8085/logout?redirect_uri=http://admin.test.com:8080’ 退出后报404无法跳转到网站首页,这个时候增加一个参数redirect_uri指定退出成功后跳转的路径,因为是自定义的,所以需在认证服务器做一些处理 找到源码默认实现接口DefaultLogoutPageGeneratingF

OAuth2 Token实现授权码模式

文章目录 OAuth2 授权:Resource owner password(密码模式)OAuth2 授权:Authorization code grant授权码模式,适用于浏览器模式OAuth2:Implicit(简化授权模式)OAuth:Client credentials(客户端证书)授权码模式使用案例 OAuth2 授权:Resource owner password(密

SpringBoot + SpringSecurity 控制授权

授权简介 一般的人会认为,不同的角色登录进同一个系统,根据角色权限的不同,看到的菜单不同就是控制授权。其实并不是的,菜单的是否显示只是前端交互上的一个设计而已,真正需要授权的地方的接口的访问。 普通的系统通常会有两个端,一个是给用户用的业务系统(比如购物商城的买家端),一个是给公司运营人员用的管理端(可以统计销售量,用户量等信息)。 业务端的权限通常比较简单,可以区分为是否登录,或者简单的

记一次knife4j文档请求异常 SyntaxError: Unexpected token ‘<‘, ... is not valid JSON

knife4j页面报错问题定位 前几天开发新接口,开发完成后想使用knife4j测试一下接口功能,突然发现访问页面报错提示:knife4j文档请求异常,但之前运行还是正常的,想想会不会与升级依赖有关系,启动其他微服务发现文档接口访问正常,排除因依赖版本升级导致在线API文档无法使用情况,还是和本服务新增接口有关系。 定位问题 首先f12打开调试台,重新刷新页面,看到console有报错提示