本篇文章主要说一下登录认证中,涉及到的一个知识点token。
一、登陆认证
首先我门要知道什么是认证
什么是认证?
就是验证当前用户的身份,证明“你是你自己”
互联网中常见的认证 :
用户名密码登录
邮箱发送登录链接
手机号接收验证码
邮箱/验证码,你就是账号的主人
要实现这个功能,就不得不提一下浏览器的绘画认证功能。它的作用就是让浏览器记住你。
我们知道,HTTP 是无状态的协议(就是说,它对于事务处理没有记忆能力,每次客户端和服务端会话完成时,服务端不会保存任何会话信息):每个请求都是完全独立的,服务端无法确认当前访问者的身份信息,无法分辨上一次的请求发送者和这一次的发送者是不是同一个人。 所以服务器与浏览器为了进行会话跟踪(知道是谁在访问我?),就必须主动的去维护一个状态,这个状态用于告知服务端前后两个请求是否来自同一浏览器,而这个状态可以 通过 cookie 或者 session 去实现。
但是cookie和session自身存在一些缺点,目前比较流行的认证方案就是token。
二、什么是Token
Token全称叫 Acesss Token 就是一个访问资源接口(API)时所需要的资源凭证。
Token有几大特点:
服务端无状态化、可扩展性好
支持移动端设备
安全
支持跨程序调用,就是不受域名限制
一般Token应用在用户在输入账号、密码登录之后,只需要将服务器返回的Token存入到本地。之后用户进入网站只需要取出Token发给服务器。 服务器就知道你是哪一个用户了,从而避免每一次进入网站都需要用户重新登录一次。
使用Token的优点有很多:
首先就是Token是无状态的
在客户端存储的Token是无状态的 .基于这种无状态和不存储session信息,负载均衡器能够将用户的信息从一个服务器传到另一个服务器上。
其次安全性高
请求过程中发送Token而不再发送cookie能够防止csrf(跨站请求伪造).即使在客户端使用了cookie存储Token,cookie也仅仅是一个存储机制而不是用于认证。
更方便
Token具有较小的体积,因此在网络上传输更加方便。
提高性能:
使用Token可以减少网络传输和服务器的负载,因为Token可以被存储在客户端,客户端在每次请求时将Token带到服务器,而不需要每次请求都要传递身份信息和状态信息。
三、Token格式
采用三段式的加密字符串 xxxxx.yyyyyy.zzzzzzz
JSON Web Token由三部分组成,它们之间用圆点(.)连接。
这三部分分别是:头部(Header)、载荷(Payload)和签名(Signature)
第一段数据 : token头信息 不可逆加密
第二段数据 : 要保存的信息进行加密 可逆的
第三段数据 : 签名信息 不可逆加密
后端会将这一个字符串发送给前端,如果有登录操作,就会生成一个token给前端。
前端就会保存这个token,如果要查看其它的页面,需要判断是否有token信息即可。
以上就是今天的所有内容,主要是帮助大家了解一下Token ,感谢观看!!!