基于服务器验证方式的验证流程:

我们都是知道HTTP协议是无状态的,这种无状态意味着程序需要验证每一次请求,从而辨别客户端的身份。在这之前,程序都是通过在服务端存储的登录信息来辨别请求的。这种方式一般都是通过存储Session来完成。随着Web,应用程序,以及移动端的兴起,这种验证的方式逐渐暴露出了问题。尤其是在可扩展性方面。

基于服务器验证方式暴露的一些问题

  1. Seesion:每次认证用户发起请求时,服务器需要去创建一个记录来存储信息。当越来越多的用户发请求时,内存的开销也会不断增加。
  2. 可扩展性:在服务端的内存中使用Seesion存储登录信息,伴随而来的是可扩展性问题。
  3. CORS(跨域资源共享):当我们需要让数据跨多台移动设备上使用时,跨域资源的共享会是一个让人头疼的问题。在使用Ajax抓取另一个域的资源,就可以会出现禁止请求的情况。
  4. CSRF(跨站请求伪造):用户在访问银行网站时,他们很容易受到跨站请求伪造的攻击,并且能够被利用其访问其他的网站。
    在这些问题中,可扩展行是最突出的。因此我们有必要去寻求一种更有行之有效的方法。

Token的引入:

在Web领域基于Token的身份验证随处可见。在大多数使用Web API的互联网公司中,tokens 是多用户下处理认证的最佳方式。客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,Token便应运而生。

Token的定义:

Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。token其实说的更通俗点可以叫暗号,在一些数据传输之前,要先进行暗号的核对,不同的暗号被授权不同的数据操作。

使用Token的目的:

Token的目的是为了减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮。
了解了Token的意义后,我们就更明确的知道为什么要用他了。

基于Token的验证原理

基于Token的身份验证是无状态的,我们不将用户信息存在服务器或Session中。

这种概念解决了在服务端存储信息时的许多问题,NoSession意味着你的程序可以根据需要去增减机器,而不用去担心用户是否登录。

基于Token的身份验证的过程如下:

  1. 用户通过用户名和密码发送请求。
  2. 程序验证。
  3. 程序返回一个签名的token 给客户端。
  4. 客户端储存token,并且每次用于每次发送请求。
  5. 服务端验证token并返回数据。

每一次请求都需要token。token应该在HTTP的头部发送从而保证了Http请求无状态。我们同样通过设置服务器属性Access-Control-Allow-Origin:* ,让服务器能接受到来自所有域的请求。需要主要的是,在ACAO头部标明(designating)*时,不得带有像HTTP认证,客户端SSL证书和cookies的证书。

究竟什么是token??相关推荐

  1. 360oauth token是什么意思_Coin还是Token?背后的逻辑是什么?

    下文内容同视频~https://www.zhihu.com/video/1167101256702353408 我们上次的节目说过比特币其实并不是货币,而是资产,虽然广义上依然是"钱&quo ...

  2. bitoken是什么币_区块链入门 | Coin还是Token?背后的逻辑是什么?

    邀请你看<「CoinBI Talk」第四期-Coin和Token,读懂币背后的逻辑>,点击链接观看. 我们上次的节目说过比特币其实并不是货币,而是资产,虽然广义上依然是"钱&qu ...

  3. cookie、session、Token究竟区别在哪?如何进行身份认证,保持用户登录状态?

    HTTP是无状态的,也就是说你这次访问了服务器,关闭网页,再次访问服务器,服务器是没有意识到又是你来访问,那怎么保持登录状态呢? 设置让用户可以选择记住用户名和密码,但是把密码交给浏览器,如果电脑被黑 ...

  4. 不要用JWT替代session管理(上):全面了解Token,JWT,OAuth,SAML,SSO

    通常为了弄清楚一个概念,我们需要掌握十个概念.在判断 JWT (Json Web Token) 是否能代替 session 管理之前,我们要了解什么是 token,以及 access token 和 ...

  5. GitHub防黑客新措施:弃用账密验证Git操作,改用token或SSH密钥,今晚0点执行

    萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 还在用账户+密码对GitHub上的Git操作进行身份验证? 赶紧整个token(令牌)或SSH密钥吧! 8月14号0点(8月13日9:00 ...

  6. BCH虫洞项目有多安全以及WHC究竟能干什么?

    虫洞项目是BCH的明星项目之一,自从概念被提出后就受到了BCH社区和币圈的关注,因为是基于BCH的智能合约方案,再加上以太坊在过去的火爆,所以社区对于这个项目是充满期待的.而虫洞项目也没有人让人失望, ...

  7. Cookie、Session、Token那点事儿

    前言:新公司项目中使用到了Cookie,在各大Android技术讨论群向前辈们取经讨论这cookie.session.token这仨哥们的时候,很多开发者说法不一各抒已见,所以是时候回顾下http基础 ...

  8. Fcoin Token ( FT )——数字货币交易所的颠覆者,还是无情镰刀的收割者

    一.Fcoin简介 最近一家叫Fcoin的数字货币交易所引起了大量关注,在其上线的短短两星期内,其上的平台币FT在短短两个星期之内上涨了100倍,并且根据其官方公布的交易量,Fcoin也同时成为了全球 ...

  9. 训练1000层的Transformer究竟有什么困难?

    ©PaperWeekly 原创 · 作者 | 苏剑林 单位 | 追一科技 研究方向 | NLP.神经网络 众所周知,现在的 Transformer 越做越大,但这个"大"通常是&q ...

  10. Secondary NameNode:它究竟有什么作用?(转自:http://blog.csdn.net/xh16319/article/details/31375197)

    前言 最近刚接触Hadoop, 一直没有弄明白NameNode和Secondary NameNode的区别和关系.很多人都认为,Secondary NameNode是NameNode的备份,是为了防止 ...

最新文章

  1. java servlet 输出_JavaWeb中servlet读取配置文件的方式
  2. 再次携号转网_潍坊一小伙欲携号转网屡被拒 联通客服:试运营状态不支持携转...
  3. 咦,拆分个字符串都这么讲究?
  4. 中国双焊接钢塑土工格栅市场趋势报告、技术动态创新及市场预测
  5. DHTMLX入门教程
  6. 怎么快速查找重复文件以及删除重复文件
  7. 给机器人罗宾写一封英语回信_人教版5年级英语unit1知识
  8. c语言输出最大的数ns流程图_图8循环结构的NS流程图.ppt
  9. VOC数据集介绍及构建自己的VOC格式目标检测数据集
  10. 0基础转行3D建模,从月薪3000到15k,我整理的超全学习指南
  11. python安装pywifi
  12. stm32——端口重映射
  13. 记一次feign调用报错:feign.codec.DecodeException: Error while extracting response for type [java...
  14. 未来5年到底是做什么生意最好?
  15. 西交《物理化学》在线作业
  16. 2. UFS2.1 —— Descriptor描述符
  17. 什么是内部类?有什么作用?静态内部类和非静态内部类的区别?
  18. 软件架构师的培养与认证
  19. nginx配置静态资源为https
  20. stagefright 架构分析(六) 创建一个 Soft Decoder

热门文章

  1. HTML转PDF问题
  2. aria2使用rpc下载百度云
  3. 基于asp.net338医院体检信息管理系统
  4. FPGA之旅设计99例之第十八例----OV5640摄像头SCCB时序
  5. delphi在linux运行,实现了delphi unigui跑在linux上
  6. NSA机密文件泄密者如何暴露身份
  7. 理解JESD204B链路参数 Understanding JESD204B Link Parameters
  8. Roslyn 静态分析
  9. android怎么防8门神器,八门神器(GameKiller)怎么用?安卓版使用教程
  10. windows大文件查找清理工具wiztree