52 Node.js => [05] Mysql增删改查 身份认证 session JWT

SQL语句的 增删改查

select * from users

insert into users (username, password) values ('mz', '123456')

update users set password=654321 where id=4

delete from users where id=4

在代码里面 增删改查

链接数据库

const mysql = require("mysql");
const db = mysql.createPool({
  host: "127.0.0.1", // 数据库的 IP 地址
  user: "root", // 登录数据库的账号
  password: "root", // 登录数据库的密码
  database: "heima", // 指定要操作哪个数据库
});

代码的4个操作

db.query('select * from users', (err, results) => {
  // 查询失败
  if (err) return console.log(err.message)
  // 查询成功
  console.log(results)
})
const user = { username: 'jerry', password: '123456' }
const sqlstr = 'insert into users set ?'

db.query(sqlstr, user ,(err, results) => {
  // 插入失败
  if (err) return console.log(err.message)
  // 插入成功
  if (results.affectedRows === 1) { console.log('插入数据成功') }
})
const user = { id: 7, username: 'spike', password: '123000' }
const sqlstr = 'update users set ? where id=?'

db.query(sqlstr, [user, user.id] ,(err, results) => {
  // 更新失败
  if (err) return console.log(err.message)

  // 更新成功
  if (results.affectedRows === 1) { console.log('更新数据成功') }
})

1. 身份认证-- 面试必问–百度自己去找

本地存储 localStorage sessionStroage
cookies
  1. 什么是cookies? 储存在用户电脑上面的一个字符串,键值对(name,value)的形式
  2. 大小不能超过 4KB
  3. cookies是随着每次的请求头,自动发送给服务器
  4. 有自己专属的过期时间;
  5. 每个域名都有自己独立的cookies; 每个网站cookies不会互相串通
session认证机制
  1. 前端发起登录请求以后, 后端校验完毕以后,如果都是正确的,则证明登录成功;但是因为http协议是无状态的; 那么我们下次在发其他请求的时候,服务器并不知道我们有没有登录。 这个时候就涉及到认证机制
  2. 那么我们就使用了一种 session-cookies的机制,来进行用户的认证。 登录成功以后,后端会返回给前端一个sessionID(用这个id来校验我们的身份), 这个返回的sessionID 值通过请求响应头的设置,存储到本的cookies里面;
  3. 然后后面的每一个请求,都会自动带上我们的cookies,放在请求头里面,自动发送给服务器; 服务器拿到cookies以后,做校验,和服务器自己的sessionID做对比; 从而判断用户的身份
JWT认证机制
  1. 前端登录成功以后,后端会生成一个特殊的字符串 ,就是token。 服务器不保存, 在上面的session-cookies机制里面; 服务器会报错用户的sessionid,以供后面的前端传递过来的cookies做对比校验使用; jwt这种机制,服务器是不用保存的
  2. 前端拿到服务器返回的token值以后,需要手动存储在 localStroage里面; 在每次发请求之前,放在请求头里面的 Authorization; 在上面session-cookies机制里面, cookies不需要手动发送,http默认的机制就会吧cookies带上
  3. 后端接受到我们的请求以后,会自己主动去请求头把这个参数解析出来, 按照一定的规则,转换成我们需要的 一些信息
    1. 后端: jsonwebtoken (后端用来生成token字符串的一个js包; 将token发送给前端)
    2. express-jwt (后端用来校验 前端通过authorization传递过来的token 是否有效)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不停喝水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值