Node后端基础8-登录认证1-认识Token

本篇文章主要说一下登录认证中,涉及到的一个知识点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 ,感谢观看!!!

你可能感兴趣的:(服务器,node.js)