没有AUTH的验证
最简单的验证机制是通过session来存储认证信息的,但这个不便于客户端存储,而且有不能跨域请求认证的缺点。
大致流程:
用户登录(输入账户密码)
后端验证
验证通过则在session存储用户ID
每个用户经过我们的应用认证之后,我们的应用都要在服务端做一次记录,以方便用户下次请求的鉴别,通常而言session都是保存在内存中,而随着认证用户的增多,服务端的开销会明显增大。
Basic 认证方式
传统的认证方式就是构造一个字符串,这个字符串里面含有账户名和密码,比如:
$str="username:password";
如果希望它不可读,可以对其进行base64编码:
$str="username:password";
$token=base64_encode($str);
echo $token;
dXNlcm5hbWU6cGFzc3dvcmQ=
这样每次请求API的时候加上这个Token值,然后后端获取到这个Token值,对其进行:
$str=base64_decode($token);
$auth=explode(':', $str);
var_dump($auth);
然后使用auth到数据库中进行查询来验证有效性。
但缺点很明显:
被窃取的可能性:每次使用这个token值进行请求,意味着每次请求都在泄露用户的密码。
增加数据库工作量:每次请求都要去数据库查询是否有效,效率明显下降。
对于传统的AUTH方式做了改进,引入JWT。
JWT认证机制
什么是JWT?
Json web token (JWT), 是一个非常轻巧的规范。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。
它的核心就是签名。比如我有一个字符串。
$str="qq:792598794;name:sungod";
如果您觉得本文的内容对您的学习有所帮助:
关键字:
jquery