vue从url中获取token并加入到 请求头里_BATJ都会用到的接口鉴权cookie、session 和token...

鉴权

鉴权是指验证用户是否拥有访问系统的权利—鉴定权限。

cookie、session和token

为什么会有cookie、session和token?

1、 http是无状态协议

什么是无状态呢?

答:当前请求和上一次或者下一次请求是没有任何关系的,好处是速度快,坏处是无法共享信息。

2、 互联网的兴起

以前的网站,基本用来查看些文件或者图片,作为服务器不需要记录谁来放访问了什么文件,每次来一个新的HTTP请求, 给予响应即可。

但随着互联网的飞速发展, http无状态的缺点被放大。

各种各样的交互网站,必须登录后才能进行一些操作,比如发帖需要记录发帖人、浏览记录等,不同账号访问的信息必须独立存储。

3、 cookie、session的加入

我们不能修改HTTP协议(无状态),那么要解决共享信息的问题必须用其他的手段。

于是就有了会话ID(session id),服务器为每个用户生成一个不一样的随机字符串(session id),一份存在服务器,一份以cookie的形式写给浏览器。

浏览器每次向服务器发起HTTP请求时,携带这个字符串(session id)回传给服务器,这样就能区分谁是谁了。

4、 session有啥缺点呢?

虽然session解决了共享信息的问题,但同时对服务器带来了其他问题—资源开销(内存、cpu)。

对于浏览器来说sessionid是非常好用的,只需要在cookie中存一个字符串就行了,但是服务器必须存储所有在线的用户sessionid,那么同时在线的人数越多开销越大,严重影响了服务器的性能。

这时可以选择去扩展服务器做集群,但同时也出现分布式sessionid问题,那么可以采用session粘滞或者session集中式管理(redis)来解决。

5、 摆脱session,拥抱token

上述的解决方案都是围绕session,那么能不能不用sessionid来解决呢?

如果不适用sessionid,如何确保数据是服务器生成的呢?怎么去验证呢?用户信息存在哪?

于是有人想到了自己按照一定规则生成加密字符串,服务器只验证不存储,只要验证通过说明是自己生成的,用户信息存储在加密字符串中,这样性能、CORS(跨域资源共享)都能解决,而这个加密字符串就是token。

cookie、session的区别

f5d04dfade39f5ecbb08d9c8986a88e8.png

cookie:客户端和服务端都能创建cookie,都是存放在客户端。存放一些小而不敏感的数据,并且数据类型只能是字符串(json)。

session:服务端生成session,存放在服务端。可以存放任意数据,java中session中可以存放任意对象。

session必须依赖cookie实现。

session和token的区别

session:服务器生成、存储、验证,以cookie的方式传给客户端,客户端以同样方式发送给服务端。

session有状态。

198443c13d1d9b155816facc313ebfde.png

token:服务器生成、验证,以cookie或者请求头的方式传给客户端,客户端以同样方式发送给服务端。

token无状态。

6bec9273b992a4f705ffddae9650ee19.png

接口鉴权方案

接口鉴权token解决方案:完成登录之后,获取到token字符串,再次请求时加入。

 
接口鉴权session解决方案:完成登录之后,获取带有session信息的cookie,再次请求时加入。

本文由柠檬班罗杰老师原创,转载需注明出处!

4c3019da7e11617f8ec90c25a3b0e9b4.png

转发到朋友圈是最高的赞赏

关注柠檬班微信公众号,获取最新技术文章

让软件测试学习变得更简单!

9e64f7fa03dc74e5adba3b6d157501b3.png

今日福利

需要接口鉴权相关学习视频

可加小米老师微信:

13327316731

暗号:公众号

8f327a53c7db764251bd517d4528265b.png

在看的,麻烦点一下再走好吗

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/301250.shtml

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

相关文章

程序有并发错误?NO WAY!

什么是并发错误并发是指程序能够交替执行不同的任务,以达到"同时执行效果",加快程序的运行效率。但是并发也会导致一系列问题,以变量1赋值为例,由于操作实际由多条指令组成,不同任务执行指令的顺序可能是交错的&#xf…

好好珍惜今生,不要期待来世……

亲情经不起冷漠,爱情经不起谎言,友情经不起虚伪。再好的缘份也经不起敷衍,再深的感情也需要珍惜。没有绝对的傻瓜,只有愿为你装傻的人,原谅你的人,是不愿失去你的世界。一辈子真的好短好短…… 有多少人说好…

NET问答: C# 中是否有 format json 的类库?

咨询区 mpen:我在寻找一个 function,它能够接收 string 格式的json,并且能够以 换行缩进 的形式输出,比如:{"status":"OK", "results":[ {"types":[ "locality", &…

图像柔光效果(SoftGlow)的原理及其实现。

图像柔光效果在很多商业软件中都有实现,比如美图秀秀,光影魔术手等。其能针对原始图像产生一副新的比较平滑感觉光线比较柔和的效果,给人一种朦胧美,如下面几幅图所示: 目前,关于该算法的可控参数&#xff…

中小学招生强化就近入学;首次全女性太空行走取消;苹果付费新闻APP奔溃;NASA火星上发现鹅卵石;这就是今天的大新闻...

今天是3月27日农历二月廿一今天星期三有点闷已经开始用空调了下面是今天的大新闻中小学招生强化就近入学(北京商报)中小学秋季入学新生招生已经陆续开始,近日,教育部办公厅也紧随其后,印发了《关于做好2019年普通中小学…

python如何安装扩展库openpyxl和numpy_Python第三方库之openpyxl(2)

Python第三方库之openpyxl(2)简单的使用写一个工作簿>>> from openpyxl importWorkbook>>> from openpyxl.compat importrange>>> from openpyxl.utils importget_column_letter>>>>>> wb Workbook()>>>>>> de…

[翻译]在GC上加入DPAD

本文90%通过机器翻译,另外10%译者按照自己的理解进行翻译,和原文相比有所删减,可能与原文并不是一一对应,但是意思基本一致。译者水平有限,如果错漏欢迎批评指正译者Bing Translator、InCerry,另外感谢Hex、…

SQL 结合CASE WHEN 实现二维统计

在开发中往往要用到类似下面的二维统计: abtype15465type25454在SQL中使用CASE WHEN 语句可以很轻松的实现: SELECT SUM(CASE WHEN typetype1 THEN 1 ELSE 0 END) AS a ,SUM(CASE WHEN typetype2 THEN 1 ELSE 0 END) AS b FROM Table1 转载于:https://ww…

phpfind mysql怎么用_MySQL 的 find_in_set 函数使用方法

举个例子来说:有个文章表里面有个type字段,它存储的是文章类型,有 1头条、2推荐、3热点、4图文...1,12,13 等等 。现在有篇文章他既是 头条,又是热点,还是图文,type中以 1,3,4 的格式存储。那我们如何用sql…

美国Thinkfun的“编程三剑客”少儿编程从入门到精通

▲数据汪特别推荐点击上图进入玩酷屋学编程现在有多火,小木就不多说啦!很多爸爸妈妈都想让小朋友早点接触编程,掌握这门未来世界的通用“语言”,但又怕太早使用电脑、iPad等电子产品,影响孩子视力。今天给大家推荐一套…

解决scrollViewDidScroll do not work的方法

2019独角兽企业重金招聘Python工程师标准>>> 别忘记在在包含了scrollView的ViewController中的viewDidload方法中设置scrollView的delegate [self.scrollView setDelegate:self]; 关于delegate:一般一个ui的delegate都在其父类中指定 view.delegateself…

基于ABP落地领域驱动设计-05.实体创建和更新最佳实践

围绕DDD和ABP Framework两个核心技术,后面还会陆续发布核心构件实现、综合案例实现系列文章,敬请关注! ABP Framework 研习社(QQ群:726299208) ABP Framework 学习及实施DDD经验分享;示例源码、…

mysql isam 食物_MySQL常用存储引擎之MyISAM

1. mysql 5.5之前版本默认存储引擎1.1 因为这个原因现在还有大量服务器在使用这myisam引擎的表1.2 myisam是mysql大部分系统表和临时表使用的存储引擎2. myisam存储引擎表由myd和myi组成2.1 myd存储数据信息2.2 myi存储索引信息2.3 frm记录表结构的,所有存储引擎都有…

每日一笑 | 史上最贴心的骗子

全世界只有3.14 % 的人关注了数据与算法之美(图源网络,侵权删)

基于ABP落地领域驱动设计-06.正确区分领域逻辑和应用逻辑

系列文章基于ABP落地领域驱动设计-01.全景图基于ABP落地领域驱动设计-02.聚合和聚合根的最佳实践和原则基于ABP落地领域驱动设计-03.仓储和规约最佳实践和原则基于ABP落地领域驱动设计-04.领域服务和应用服务的最佳实践和原则基于ABP落地领域驱动设计-05.实体创建和更新最佳实践…

Python 学习笔记(三)Function

python引用变量的顺序: 当前作用域局部变量->外层作用域变量->当前模块中的全局变量->python内置变量 1. Scope: • If a variable is assigned inside a def, it is local to that function.• If a variable is assigned in an enclosing def, it is non…

python xpath定位不到_Python+Selenium定位不到元素常见原因及解决办法(报:NoSuchElementException)...

#codingutf-8Created on 2016-7-20author: JenniferProject:登录百度账号from selenium importwebdriverimporttimedriver webdriver.Firefox()driver.get("http://www.baidu.com/")time.sleep(3)#点击登录:有些name为tj_login的元素为不可见的&#xff0…

基于ABP落地领域驱动设计-03.仓储和规约最佳实践和原则

dotNET兄弟会 专注.Net开源技术及跨平台开发!致力于构建完善的.Net开放技术文库!为.Net爱好者提供学习交流家园!公众号 围绕DDD和ABP Framework两个核心技术,后面还会陆续发布核心构件实现、综合案例实现系列文章,敬请…

我国最新十大黑科技发布,颠覆你的想象!

全世界只有3.14 % 的人关注了数据与算法之美人工智能的飞速发展,让“黑科技”一词深入人心。目不暇接的各种前沿技术,一再刷新人们的认知世界。所谓“黑科技”,不仅仅要够炫酷,更要有足够的“生活温度”,实现真正的人性…

javascript理论篇(详情见地址)

一篇很精彩的javascript理论知识 http://www.cnblogs.com/leadzen/archive/2008/02/25/1073404.html转载于:https://www.cnblogs.com/jangwewe/p/3161020.html