v2.5.2
Giriş yap

Middlewareim tam olarak doğru çalışmıyor !

erotikpapagan
251 defa görüntülendi

Herkese merhabalar.Benim bir auth sistemim var

kullanıcı /auth sayfasindan login olabiliyor ve /dashboard sayfasinda da bilgilerini gore biliyor.

Her routem-da tokeni kontrol eden bir middleware var :

import ValidateToken from "./token.validation.js"

const TokenMiddleware = (req,res,next)=>{
    const result = ValidateToken(req);
    if(result.success){
        if(req.url === "/auth"){
            res.redirect("/dashboard");
        }else{
            next();
        }
    }else{
        if(req.url === "/auth"){
            next()
        }else{
            res.redirect("/auth")
        }
    }
}
export default TokenMiddleware

Login Controllerim de boyle :

const LoginController = async (req, res) => {
  try {
    const { name, pass } = req.body;

    const user = await UserModel.findOne({ name });
    if (!user) {
      return new Response("İstifadəçı adı və ya şifrə yanlışdır", null).error404(res);
    }
    const passwordMatch = await bcrypt.compare(pass, user.pass);

    if (!passwordMatch) {
      return new Response("İstifadəçı adı və şifrə yanlışdır").error404(res);
    }

    const token = CreateToken(user.name, user._id);
    res.cookie("auth", token, {
      httpOnly: true,
      maxAge: Math.floor(Date.now() / 1000) - 30,
    });
    res.redirect("/dashboard")
  } catch (err) {
    console.log(err);
    return new Response("Xəta baş verdi", null).error500(res);
  }
};

Sorun

Kullanıcı login olduğunda dashboard sayfasına yönlendiriliyor.Eğer /auth sayfasına gitmek isterse middleware izin vermiyor
Ancak eğer kullanıcı login olduktan sonra ,dashboard sayfasında browserin back düğmesine basarsa,o zaman artık kullanıcı /auth sayfasına gidip yeniden istek atabiliyor

Esas sorun istek atıp atmaması değil , sorun tam olarak /auth sayfasının cookie olmasına rağmen yüklenmesi redirect edilmemesi

Cevap yaz
Cevaplar (0)
Henüz kimse cevap yazmadı. İlk cevap yazan sen ol!