为什么koa ctx.cookies.set里面 maxAge设置时间不准确

发布于 2022-09-06 08:33:24 字数 3198 浏览 22 评论 0

  1. 我将 ctx.cookies.set("accessToken",token,{maxAge:26060})设置为两个小时,但总是几分钟后或十几分钟后就cookies里面就自动消失了

2.代码如下

var route=require('koa-router')();
var userModel=require('../public/mongo/users')


const jwt=require('jsonwebtoken'); const jwtKoa=require('koa-jwt');
const util=require('util'); const verify=util.promisify(jwt.verify);
const secret='jwt demo';

/*var userModel=require("../public/mongo/users");*/

route.post('/login',async function(ctx,next){
    ctx.type="application/json";
    if(ctx.cookies.get('accessToken')){
        console.log("if(ctx.cookies.get('accessToken')){"+ctx.cookies.get('accessToken'));
        ctx.body ={
            loginSccseeful:true,
            username:ctx.request.body.username,
            token:ctx.cookies.get('accessToken')
        };
        return;
    }
    else
     {
        try{
            //console.log(ctx.header);

            var user=await userModel.find({name: ctx.request.body.username});
            if (user.length == 0) {
                console.log("user not register")
                ctx.body = "user not register";
            }
            else {
                let user=await userModel.find({
                    name: ctx.request.body.username,
                    password: ctx.request.body.password
                });
                    if (user == null || user.length == 0) {
                        console.log('password wrong');
                        //ctx.response.body = "login fail";
                        ctx.body = "login fail";
                    }
                    if (user != null && user.length > 0) {
                        /*Token*/
                        const userToken={name:ctx.request.body.username};
                        const token="sssss";
                       // const token=jwt.sign(userToken,secret,{expiresIn:'30s'})//
                        console.log("token: "+token);
                        /*var exp = new Date();
                        exp.setTime(exp.getTime() + 60 * 2000);//过期时间 2分钟*/
                        ctx.cookies.set("accessToken",token,{maxAge:2*60*60});//为什么maxAge要比正常事件设长这么久
                        console.log(ctx.cookies.get('accessToken'));
                        console.log('login sccessful');
                        //ctx.body = "login successful";
                        //ctx.response.body = "login successful";
                        if(ctx.request.body.remember==true){
                            await ctx.cookies.set("suki","123456",{maxAge:14*24*3600, httpOnly:
true});
                            console.log(ctx.cookies.get('suki'));
                           // ctx.redirect('/signin');
                        }

                        //ctx.body ="ok";
                        ctx.body ={
                                loginSccseeful:true,
                                username:ctx.request.body.username,
                                token:token
                        };
                        console.log(ctx.type);
                    }
                }

        }catch(e){
            console.log(e.err)
        }
    }

})

module.exports = route;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

Saygoodbye 2022-09-13 08:33:24
暮年 2022-09-13 08:33:24

求不要沉下去~~~

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文