Middlewareim tam olarak doğru çalışmıyor !
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
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!