当下很多Web框架都封装了登录,登出的功能。调用起来也非常简单。但是这个功能具体是如何实现的呢?今天就来说明一下其中的原理。
- 注册
{
name: "test_user",
pass: "password"
}
服务器接受到信息后会把这些信息保存进数据库。
为了安全,我们一般会把密码加密再加入数据库。 加密方法有一下几种,如果没有特别需求的话,建议使用bcrypt
1. md5
2. sha256
3. bcrypt
4. scrypt
5. argon2
etc.
这样我们的新用户就创建好了。
- 登录
但这种做法有一个问题。就是HTTP协议是不包含状态的,我们没法通过协议来记住下一次访问是同一个人这件事。
也就是说以后的每一次登录都要手动输入用户名和密码。这就很麻烦了。 于是人们就想到了用cookie + session来做登录认证。
- 通过cookie + session来认证
这样就免去了用户每次输入用户民和密码的麻烦。
- 登出
为了解除登录状态,需要删除服务器session和用户端cookie。
这样下次访问的时候会因为找不到session_id被跳转至登录页面。