nodejs登录校验(可用其他框架搭建)

使用nodejs做一个登录校验,在我的印象中nodejs语言做的事情最多的就是和http相关,话不多说,先介绍:

// cookie是什么

// 1 存储在浏览器中的一段字符串 最大5kb

// 2 每一个域可有一个cookie 跨域不共享

// 3 格式如k1 = vi; k2 = v2;(可结构化)

// cookie会随http请求传递给服务端

// 服务端可以修改cookie在返回给前端

// 默认跨域不可以传递cookie

// 服务端操作cookie

// 设置cookie

// 获取cookie

// 结构化cookie


 

//前端传入cookie的时候是追加而不是覆盖 (除了建相同的情况下)


 

//cookie 如何应用于登录校验

// 1 请求登录接口 成功则设置cookie 如user=zhangsan

// 2 前端再请求其他接口 就会带着上述的cookie

// 3 服务端判断cookie有无user=zhangsan 即可验证


 

// cookie不能暴露用户名

// cookie中不能存放明文

// 解决方案 cookie存一个用户标识 如userId=123


 

// session是什么

// 1 cookie存储用户标识

// 2 用户信息则存储到session中

// session即用户信息的存储 和cookie有对应关联

上代码:

// // 服务端操作cookie

// const http = require('http')

// const server = http.createServer((req, res) => {

//     //设置cookie
//     res.setHeader('Set-Cookie', 'b=200')

//     //获取cookie
//     const cookieStr = req.headers.cookie
//     console.log('cookie is', cookieStr);

//     //结构化cookie (概念很重要)  就是把cookie字符串变成对象的形式
//     //querystring
//     //cookieStr: 'a=100;b=200' --> {a:'100',b:'200'}
//     const cookieObj = {}
//     cookieStr.split(';').forEach(cookieItemStr => {
//         const arr = cookieItemStr.trim().split('=')
//         const key = arr[0]  //'a'
//         const val = arr[1]  //'100'
//         cookieObj[key] = val
//     })
//     // querystring url 参数
//     console.log('cookie obj is',cookieObj);

//     res.end('cookie test')
// })

// server.listen(3000)
// console.log('server listening on 3000 port');



// koa2操作cookie

const Koa = require('koa')
const app = new Koa()

app.use(async (ctx) => {

    // 设置cookie
    ctx.cookies.set('c', '250')
    

    // 获取cookie
    ctx.cookies.get('c')

    // 结构化 koa2已经做好了不用管


    ctx.body = 'cookie test by Koa2'

})

app.listen(3000)

const server = http.createServer((req, res) => {

    const url = req.url   //'/index.html?a=100'
    const path = url.split('?')[0]  //'index.html'


    res.end(path)
    // 返回域名后的地址 ?之前的
})

server.listen(3000)
console.log('服务正在监听3000port')

你可能感兴趣的:(前端,javascript,node.js,http)