用户名:sgzhjm
后端服务器有两种基本的身份验:
是基来自于Cookie的身份验,使用服务器端的cookie来对每次请求的用户进行身份验。
较新的方法,基于令牌Token-Based的认,依赖于被发送到服务器上每个请求的签署令牌。
为什么基于令牌token-based的方式更好问答呢?理由如下:
跨域/CORS:cookies+CORS并不能跨不同的域名.而基于令牌能够使用AJAX调用服务器,在任何域名下你都可以使用h**铁消衣绿攻工制稳轮TTPheader头部来传输用户信息。
无态(代表服务器端可伸缩):没有必要将会话保存,令牌t只卷能口常oken自己是一跑力看额她从示席谈个自我包容的实体,包含用户各种信息,其他状态信息可以保存在cookie或客户端本地存储器中
CDN:能够适用来自CDN任何应用部件(e.g.j**ascript,h**TML,images,etc.),你的服务器只是一个API.
解耦:你不必和一个特定的验格式Schema绑定,令牌民扬色初token能在任何地方**生,这样的你的API可以在任何地方以乐按相协报以高同一种验方式调用验。
对移动Mob笔外严没渐我孔约ile友善:当你在一个原生平台(iOS,Android,Windows8,etc.)时,cook象轮苏短本似回围世速保ies依赖于一个叶啊在至益雷空京首区苗安全API,并不是好主意,因为你得和一个cookie容器打交道,而基于令牌则简单多。
CSRF:因为你不依赖cookies,你就不需要跨请求保护,(e.g.it有可能来自<iframe>请求一个POST,需要重用一个存在的验。).
.性能:一个网络往返识阻示工表加渐住专(如发现在**库中的会话)可能会比计算的h**MACSh**A256验令牌耗费更多时间。
登录页面不是一个特殊情况,如果你如果您正在使用量角器来写你的功能测试,你不需要来处理登录的任何特殊情况。
基于标准:你的API能接受一个标准的JSONWebToken(JWT).这个标准后苗固委足部己王里扬倍面有多个库包(.NET,Ruby,J**a,Python,Ph**P),许多公司支持(e.g.Fire阶额若字若铁文左base,Google,Microsoft).,比如Firebase允许他们的客户使用任何身份验机制,只要你使用预不众活念界月兵活次胡先定义的属性生成一个JWT,并使用**享密钥签署,就能调用它们的API.