I have a problem rendering a dashboard.ejs
. When entering my /login
I have a javascript code that evaluates if I have a token
registered in my local-storage
, if it exists a /get
to the dashboard and here the problem because it does not render my dashboard returns to /login
// login
<script type="text/javascript">
console.log("comprueba si existe el token");
if (window.localStorage) {
console.log("obtiene el local storage")
var jwt = localStorage.getItem("krowdy-oauth");
console.log("¿existe jwt?:",jwt)
if (jwt){
$.ajax({
url: "https://localhost:3000/dashboard#",
type: 'GET',
headers: {"authorization": jwt}
});
}else{
console.log("no tiene token");
}
}
else {
console.log('Tu Browser no soporta LocalStorage!');
}
</script>
// router / dashboard
router.get('/dashboard', function(req, res){
var jwt;
var redirectUrl = utils.getRedirectUrl(req.originalUrl);
if (req.query.token)
jwt=req.query.token
else if (req.headers["authorization"]){
jwt=req.headers["authorization"];
console.log("headers:",req.headers["authorization"]);
}
console.log("jwt:",jwt);
if (typeof jwt !== 'undefined') {
if (!tokenModify(jwt)){
var header=jwt.split('.')[0];
var payload=jwt.split('.')[1];
var data=unb64(payload);
let dat=JSON.parse(data);
let mail=dat.email;
Users.findOne({"email":"[email protected]"}).exec(function(err, user){
let user=user
if(user==null){
console.log("user null");
return res.render('login',{
'error' : 'Error el usuario o password estan incorrectos',
});
}else if(user.enabled){
req.user=user;
req.token=jwt
if(req.token){
console.log("/dashboard token true")
}else{
console.log("/dashboard token false")
}
console.log("midleware user:",req.user._id);
res.render('dashboard', {
user: req.user ,
redirect : redirectUrl,
role : req.user.role,
wss : global.confSelf.ws,
token:req.token
});
}else{
res.render('login',{
'error' : 'Error Usuario ha sido desabilitado contactar a soporte',
});
}
});
}else{
console.log("el token se ha modificado:");
let message="el token ha sido modificado";
res.redirect('/login');
}
} else {
console.log("se renderizara el login");
res.redirect('/login');
}
});