【发布时间】:2019-09-12 18:22:03
【问题描述】:
我已经为用户注册和登录创建了一个后端,我不知道后端是如何处理和验证会话的。
我阅读了一些关于如何生成会话令牌的文章,但我不知道如何验证该令牌一旦发送到服务器端询问一些信息
这就是我所做的,将会话存储在每个用户的后端,然后使用手工制作的中间件询问是否为该用户创建了这个会话,我知道这是低效的
router.post("/createUser",(req,res)=>{
const {Name, Email , Phone , Password, UserName} = req.body
console.log(Email,Phone,Password)
if(Name && Email && Phone && Password){
const user = new UserModel({Name,Email,Phone,Password,UserName})
user.save((e)=>e? console.log(e): console.log("success"))
const Session = new SessionModel({userID:user._id,session:req.sessionID})
Session.save()
res.status(201).send(req.sessionID)
}else{
res.status(500).send()
}
})
这就是我验证请求的方式
router.use("/profile",(req, res , next)=>{
const {SessionID , UserID} = req.query
SessionModel.findOne({userID:UserID},(err,session)=>{
if(session.session === SessionID){
next()
}else{
return res.status(500).send()
}
})})
router.get("/profile",(req,res)=>{
res.send("works")
})
【问题讨论】:
标签: javascript node.js reactjs express session