按我所知道的,登录验证一般就是对比密码的 Hash,我最近研究 nodeclub 项目的代码。使用app.use() 中间件来做验证。
- 在登录的时候post登录数据
- 服务器返回cookie
- 跳到中间件进行验证
- ???
以上是我的分析。
routes.js的login路由
app.post('/signin', sign.login);
说明使用的是post method,路径是/signin,controller是sign.login
sign.login代码在这https://github.com/cnodejs/nodeclub/blob/master/controllers/sign.js#L113-L149
主要逻辑是
验证post到的数据 => 用户是否存在 => 密码是否正确(md5) => 用户是否激活
成功的话设置session
// store session cookie
gen_session(user, res);
最后重定向