cookie做登陆测试的思路

cookie做登陆测试的思路:
user.js/router

const login = require('../controller/user')
const { SuccessModel, ErrorModel } = require('../model/resModel')
const handleUserRouter = (req,res)=>{
    const method = req.method
    // 登录
    if(method === 'GET' && req.path === '/api/user/login'){
        // const result = login(req.body.username,req.body.password)
        const result = login(req.query.username,req.query.password)
        console.log(req.query.username,req.query.password);
        return result.then(data=>{
            if(data.username){
                // 操作cookie
                res.setHeader('Set-Cookie',`username=${data.username}; path=/`)
                return new SuccessModel()
            }
            return new ErrorModel('登录失败')
        })
    }

    // 登录功能的测试
    if(method === 'GET' && req.path==='/api/user/login-test'){
        if(req.cookie.username){
            return Promise.resolve(new SuccessModel())
        }
        return Promise.resolve(new ErrorModel('尚未登录'))
    }
}

module.exports = handleUserRouter

user.js/controller:

const { exec } = require('../db/mysql')
const login = (username, password) => {
    let sql = `select username,realname from users where username='${username}' and password='${password}';` //insert 需要加`password`,where查询中不用加上``号
    return exec(sql).then(resultData => {
        return resultData[0] || {}
    })
}

module.exports = login

在这里插入图片描述
此时在console里面可以看到:
在这里插入图片描述
在application里面可以看到:
在这里插入图片描述

我们再访问一下login-test页面:
在这里插入图片描述
因为请求这个域的时候cookie也一并带过去了,检测到有cookie.username,所以返回登录成功

地址栏输入:http://127.0.0.1:8000/api/user/login?username=dean2&password=123
回车之后,后端获取到req.query里面的username=dean2和password=123
把这两个参数传入login方法里面得到result, result是一个promise对象,值就是resultDate[0]

user.js/controller
在这里插入图片描述
同时在得到data.username以后,会在服务端设置cookie:

res.setHeader('Set-Cookie',`username=${data.username}; path=/`)

在这里插入图片描述

这样cookie就存在本地了:
在这里插入图片描述
现在当我们访问测试路由http://127.0.0.1:8000/api/user/login-test的时候:
在这里插入图片描述
在这里插入图片描述

显示已经登录了,因为此时req已经把username=dean2传过去了,如红框内的,而在服务端req.cookie.username可以获取
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值