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

    科技2024-04-03  15

    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

    什么是cookies? 储存在用户电脑上面的一个字符串,键值对(name,value)的形式大小不能超过 4KBcookies是随着每次的请求头,自动发送给服务器有自己专属的过期时间;每个域名都有自己独立的cookies; 每个网站cookies不会互相串通

    session认证机制

    前端发起登录请求以后, 后端校验完毕以后,如果都是正确的,则证明登录成功;但是因为http协议是无状态的; 那么我们下次在发其他请求的时候,服务器并不知道我们有没有登录。 这个时候就涉及到认证机制那么我们就使用了一种 session-cookies的机制,来进行用户的认证。 登录成功以后,后端会返回给前端一个sessionID(用这个id来校验我们的身份), 这个返回的sessionID 值通过请求响应头的设置,存储到本的cookies里面;然后后面的每一个请求,都会自动带上我们的cookies,放在请求头里面,自动发送给服务器; 服务器拿到cookies以后,做校验,和服务器自己的sessionID做对比; 从而判断用户的身份

    JWT认证机制

    前端登录成功以后,后端会生成一个特殊的字符串 ,就是token。 服务器不保存, 在上面的session-cookies机制里面; 服务器会报错用户的sessionid,以供后面的前端传递过来的cookies做对比校验使用; jwt这种机制,服务器是不用保存的前端拿到服务器返回的token值以后,需要手动存储在 localStroage里面; 在每次发请求之前,放在请求头里面的 Authorization; 在上面session-cookies机制里面, cookies不需要手动发送,http默认的机制就会吧cookies带上后端接受到我们的请求以后,会自己主动去请求头把这个参数解析出来, 按照一定的规则,转换成我们需要的 一些信息 后端: jsonwebtoken (后端用来生成token字符串的一个js包; 将token发送给前端)express-jwt (后端用来校验 前端通过authorization传递过来的token 是否有效)
    Processed: 0.030, SQL: 9