身份验证中Cookies与 Tokens比较
来源:互联网 发布:咸宁软件开发 编辑:程序博客网 时间:2024/04/29 22:47
后端服务器有两种基本的身份验证:
1.是基于Cookie的身份验证,使用服务器端的cookie来对每次请求的用户进行身份验证。
2. 较新的方法,基于令牌Token-Based的认证,依赖于被发送到服务器上每个请求的签署令牌。
下图两个工作原理:
为什么基于令牌token-based的方式更好呢?理由如下:
1。跨域 / CORS: cookies + CORS 并不能跨不同的域名.而基于令牌能够使用 AJAX 调用服务器,在任何域名下你都可以使用HTTP header头部来传输用户信息。
2. 无态(代表服务器端可伸缩): 没有必要将会话保存,令牌 token 自己是一个自我包容的实体,包含用户各种信息,其他状态信息可以保存在cookie或客户端本地存储器中
3.CDN: 能够适用来自CDN任何应用部件(e.g. javascript, HTML, images, etc.), 你的服务器只是一个 API.
4.解耦: 你不必和一个特定的验证格式Schema绑定,令牌token 能在任何地方产生,这样的你的API可以在任何地方以同一种验证方式调用验证。
5.对移动Mobile友善: 当你在一个原生平台(iOS, Android, Windows 8, etc.)时, cookies依赖于一个安全API,并不是好主意,因为你得和一个cookie容器打交道,而基于令牌则简单多。
6.CSRF: 因为你不依赖cookies, 你就不需要跨请求保护,(e.g. it 有可能来自 <iframe> 请求一个POST,需要重用一个存在的验证。).
6.性能:一个网络往返(如发现在数据库中的会话)可能会比计算的HMACSHA256验证令牌耗费更多时间。
7.登录页面不是一个特殊情况,如果你如果您正在使用量角器来写你的功能测试,你不需要来处理登录的任何特殊情况。
8.基于标准: 你的API能接受一个标准的 JSON Web Token (JWT). 这个标准后面有多个库包(.NET, Ruby, Java, Python, PHP),许多公司支持(e.g. Firebase, Google, Microsoft). ,比如Firebase允许他们的客户使用任何身份验证机制,只要你使用预先定义的属性生成一个 JWT,并使用共享密钥签署,就能调用它们的API.
0 0
- 身份验证中Cookies与 Tokens比较
- 身份验证session cookies
- 简单比较 --session 与 cookies 的区别
- 微服务架构中的身份验证问题 :JSON Web Tokens( JWT)
- asp.net 中 Request.Cookies 与 Response.Cookies解析
- Cookies vs Tokens. Getting auth right with Angular.JS
- Cookies vs Tokens. Getting auth right with Angular.JS
- 关于IPSEC中身份验证与加密
- Session 与 Cookies 储存内容的类型比较
- 比较Session和Cookies
- Binders 与 Window Tokens(窗口令牌)
- 在Nodejs中使用JSON WEB Tokens
- Asp.net中cookies的读与写
- Asp.net中cookies的读与写
- asp.net 中Session与cookies的区别
- 比较cookies和Web Storage
- for command in windows batch(tokens)/在batch中for命令的tokens
- IssueVision与TaskVision 使用技术比较--XML Web services自定义身份验证数据
- Hibernate框架基础知识第一天
- poj2186【利用强连通分量】
- C/C++笔记(C语言重要问题重讲,数据篇)
- ORACLE和MYSQL查询表字段信息的sql
- qt5集成libcurl实现tftp和ftp的方法之三:搭建FTP时,当ftpServer端默认登录的目录不是根目录/时,有一个bug会产生的解决办法
- 身份验证中Cookies与 Tokens比较
- Lwip学习笔记之UDP
- CMUSphinx语音识别工具包的概述
- HDU 1018 Big Number
- 设计模式-单例模式
- 指针与野指针
- Dialog的回退按钮的点击事件
- Spring开发环境配置以及入门案例
- 分布式一致性协议学习笔记(一)--Paxos