Node.js(三)数据库与身份认证

目录

一、在项目中操作MySQL

1.1 在项目中操作数据库的步骤

1.2 安装与配置mysql模块

1.3 使用mysql模块操作MySQL数据库

​编辑二、前后端的身份认证

2.1 Web开发模式

​编辑 2.2 身份认证

2.3 Session认证机制

2.4 在Express中使用Session认证

2.5 JWT认证机制

2.6 在Express中使用JWT


一、在项目中操作MySQL

1.1 在项目中操作数据库的步骤

1.2 安装与配置mysql模块

1、安装mysql模块

 2、配置mysql模块

 

3、 测试mysql模块是否正常工作

1.3 使用mysql模块操作MySQL数据库

1、查询数据

如果执行的是select语句,结果是数组 

2、插入数据

3、插入数据的便捷方式

 

4、更新数据

5、更新数据的便捷方式

 

6、删除数据

 7、标记删除

二、前后端的身份认证

2.1 Web开发模式

1、服务器端渲染的Web开发模式

服务端渲染的概念:服务器发送给客户端的HTML页面,是在服务器通过字符串的拼接,动态生成的。因此,客户端不需要使用Ajax这样的技术额外请求页面的数据。代码示例如下:

2、服务端渲染的优缺点

 3、前后端分离的Web开发模式

 前后端分离的概念:前后端分离的开发模式,依赖于Ajax技术。后端只负责提供API接口,前端使用Ajax调用接口的开发模式

4、前后端分离的优缺点

5、如何选择Web开发模式

 2.2 身份认证

1、什么是身份认证

身份认证: 又称“身份验证”、“鉴权”,指通过一定的手段,完成对用户身份的确认

2、不同开发模式下的身份认证

2.3 Session认证机制

1、HTTP协议的无状态性

HTTP协议的无状态性,指的是客户端每次HTTP请求都是独立的,连续多个请求之间没有直接的关系,服务器不会主动保留每次HTTP请求的状态

2、如何突破HTTP无状态的限制

3、什么是Cookie

Cookie是存储在用户浏览器中的一段不超过4KB的字符串。它由一个名称(name)、一个值(Value)和其它几个用于控制Cookie有效期、安全性、适用范围的可选属性组成

不同域名下的Cookie各自独立,每当客户端发起请求时,会自动把当前域名下的所有未过期的Cookie一同发送到服务器。

4、Cookie在身份认证中的作用

5、Cookie不具有安全性

6、提高身份认证的安全性

7、Session的工作原理

 

2.4 在Express中使用Session认证

1、安装express-session 中间件

2、配置 express-session 中间件

3、向session中存数据

4、从session中取数据

5、清空session 

2.5 JWT认证机制

1、了解Session认证的局限性

Session认证机制需要配合Cookie才能实现。由于Cookie默认不支持跨域访问,所以,当涉及到前端跨域请求后端接口的时候需要做很多额外的配置,才能实现跨域Session认证。

2、什么是JWT

JWT(JSON Web Token)是目前最流行的跨域认证解决方案

3、JWT的工作原理

用户的信息通过Token字符串的形式,保存在客户端浏览器中。服务器通过还原Token字符串的形式来认证用户的身份

4、JWT的组成部分

通常由三部分组成:Header(头部)、Payload(有效荷载)、Signature(签名)

三者之间使用英文的" . "分隔,格式如下:

Payload:才是 真正的用户信息,它是用户信息经过加密之后生成的字符串。

Header和Signature是安全性相关的部分,只是为了保证Token的安全性

5、JWT的使用方式

客户端收到服务器返回的JWT之后,通常会将它存储在localStorage或sessionStorage中

客户端每次与服务器通信,都要带上这个JWT的字符串,从而进行身份认证。推荐的做法是:

把JWT放在HTTP请求头的Authorization字段中,格式如下:

2.6 在Express中使用JWT

1、安装 JWT相关的包

2、导入JWT相关的包 

3、定义secret密钥

4、在登录成功后生成JWT字符串

5、将JWT字符串还原为JSON对象

6、使用req.user()获取用户信息

 7、捕获解析JWT失败后产生的错误

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值