黑马博客——详细步骤(二)项目功能的实现之登录功能

2. 项目功能实现
2.1 登录


1. 创建用户集合,初始化用户
              1.    连接数据库
              2.    创建用户集合
              3.    初始化用户
 

连接数据库:

创建用户集合:

 

初始化用户

 

删除或注释掉测试代码:

 

 

2. 为登录表单项设置请求地址、请求方式以及表单项name属性

3. 当用户点击登录按钮时,客户端验证用户是否填写了登录表单

4. 如果其中一项没有输入,阻止表单提交

 

5. 服务器端接收请求参数,验证用户是否填写了登录表单

下载好第三方模块后重新启动服务器

 

设置google禁止使用js代码

高级设置->内容设置->JavaScript 选择禁止

6. 如果其中一项没有输入,为客户端做出响应,阻止程序向下执行

美化错误页面:

       使用错误页面模板

优化页面:错误页面三秒后返回登录页面

 

7. 根据邮箱地址查询用户信息

 

8. 如果用户不存在,为客户端做出响应,阻止程序向下执行

9. 如果用户存在,将用户名和密码进行比对

 

10. 比对成功,用户登录成功

11. 比对失败,用户登录失败

12. 密码加密处理 bcrypt

哈希加密是单程加密方式:1234=>abcd

只能加密,不能解密

在加密的密码中加入随机字符串可以增加密码被破解的难度。

 

bcrypt依赖的其他环境

1.安装python 并把python设置到环境变量中

2.node-gyp

npm install node-gyp -g

3.windows-build-tools

Python 2版本:npm install --global --production windows-build-tools

Python其它版本:https://blog.csdn.net/weixin_43848802/article/details/105113616

测试第三方模块bcrypt能否使用

在项目中使用第三方模块bcrypt

比对密码:

 

13. 保存登录状态

成功登录后

表明没有保存登录状态(http协议的无状态性)

保存登录状态需要技术:cookie与session

cookie与session

cookie:浏览器在电脑硬盘中开辟的一块空间,主要供服务器端存储数据。

  1. cookie中的数据是以域名的形式进行区分的。
  2. cookie中的数据是有过期时间的,超过时间数据会被浏览器自动删除。
  3. cookie中的数据会随着请求被自动发送到服务器端。

session:实际上就是一个对象,存储在服务器端的内存中,在session对象中也可以存储多条数据,每一条数据都有一个sessionid做为唯一标识。

在node.js中需要借助express-session实现session功能。

npm install express-session

成功登录后

成功登录后

登录后跳转用户列表页面(重定向)

成功登录后

 

14.登录拦截(设置未登录不能查看user页面等)

验证:未登录状态下访问http://localhost/admin/user 会跳转到登录界面

 

15.将功能模块分离

(1)分离登录刷选功能模块:

验证:未登录状态下访问http://localhost/admin/user 会跳转到登录界面

(2)分离登录功能模块:

 

简化

验证登录功能能否正常运行

以同样的方式处理其它功能

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值