在系统级项目开发时常常会遇到一个问题就是鉴权,身为一个前端来说可能我们距离鉴权可能比较远,一般来说我们也只是去应用,并没有对权限这一部分进行深入的理解。
什么是鉴权
鉴权:是指验证用户是否拥有访问系统的权利。传统的鉴权是通过密码来验证的。这种方式的前提是,每个获得密码的用户都已经被授权。在建立用户时,就为此用户分配一个密码,用户的密码可以由管理员指定,也可以由用户自行申请。这种方式的弱点十分明显:一旦密码被偷或用户遗失密码,情况就会十分麻烦,需要管理员对用户密码进行重新修改,而修改密码之前还要人工验证用户的合法身份。 -- 节选自百度百科
上述简单扼要的说明了一下鉴权的概念,但是这也只是简单的鉴权,也是项目中最最常见的及安全形式了,但是对于后端鉴权又是如何去做的,我们仍是一无所知,一般来说对于后端来说,鉴权最长见的方式分为三种:
Session/Cookie Token或Jwt OAuth这种授权方式是浏览器遵守http
协议实现的基本授权方式,HTTP
协议进行通信的过程中,HTTP
协议定义了基本认证认证允许HTTP
服务器对客户端进行用户身份证的方法。接下来就一一介绍一下这三种鉴权方式。
Session/Cookie
Cookie
是一个非常具体的东西,指的就是浏览器里面能永久存储的一种数据,仅仅是浏览器实现的一种数据存储功能。Cookie
由服务器生成,发送给浏览器,浏览器把Cookie
以KV
形式保存到某个目录下的文本文件内,下一次请求同一网站时会把该Cookie
发送给服务器。由于Cookie
是存在客户端上的,所以浏览器加入了一些限制确保Cookie
不会被恶意使用,同时不会占据太多磁盘空间,所以每个域的Cookie
数量是有限的。
Cookie.js
const Http = require("http");const app = Http.createServer((req,res) => { if(req.url === "/favicon.ico"){ return; }else{ res.setHeader("Set-Cookie","cx=Segmentfault"); res.end("hello cookie"); };});app.listen(3000);
使用node Cookie.js
运行上面代码,等程序启动后访问http://localhost:3000/
,就可以看到hello cookie
字样,这样的话就代表该服务已经启动了。若想查看到到我们所设置的Cookie
,首先观察一下在Network
中Response Headers
中,可以看到我们所写的Set-Cookie
属性,当我们访问http://localhost:3000/
的时候,当浏览器接收到Set-Cookie
这个属性的时候,浏览器会根据其内部约定,并在其浏览器内部对其
新闻热点
疑难解答
图片精选