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;