node.js - Express-session implémente les problèmes de cookies lors de la vérification de connexion
仅有的幸福
仅有的幸福 2017-05-02 09:26:17
0
1
926

La situation actuelle est qu'il y a un cookie côté navigateur, le nom est config.session.key('myblog'), mais sa valeur ne changera jamais, que vous soyez connecté ou non, et si vous êtes connecté, fermez le navigateur et réessayez. Lorsque vous ouvrirez la page, vous serez toujours dans l'état "Connexion". Comment est-ce mis en œuvre ? Le mécanisme de vérification que je comprends personnellement devrait consister à modifier la valeur du cookie et à l'envoyer. au serveur. Après confirmation, le serveur revient connecté. Veuillez dalao clarifier
index.js

app.use(session({
    name:config.session.key,//设置cookie中保存session id的字段名称
    secret:config.session.secret,//通过设置 secret 来计算 hash 值并放在 cookie 中,使产生的 signedCookie 防篡改
    resave:false,//
    saveUninitialized:false,//设置为 false,强制创建一个 session,即使用户未登录
    cookie:{
        maxAge:config.session.maxAge,//过期时间
    },
    store:new MongoStore({//将session存储到mongodb
        url:config.mongodb//mongodb地址
    })
}));

Connexion utilisateur signin.js

router.post('/', checkNotLogin, function(req, res, next) {
  var name = req.fields.name,
        password = req.fields.password;
  UserModel.getUserByName(name)
      .then(function(user){
          if(!user){
              req.flash('error','用户不存在');
              return res.redirect('back'); 
          }
          // 密码是否匹配
          if(sha1(password)!==user.password){
              req.flash('error','密码错误');
              return res.redirect('back')
          }
          req.flash('success','登录成功');
          delete user.password;
          req.session.user = user;
          res.redirect('/posts'); 
      })
      .catch(next);
});

仅有的幸福
仅有的幸福

répondre à tous(1)
滿天的星座

La valeur du cookie n'est pas modifiée. req.session est stockée côté serveur.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal