Hallo Zusammen,
ich habe folgendes Problem, ich habe mir eine Login Seite gebastelt welche soweit auch funktioniert. Bei einem erfolgreichem Login erfolgt eine Weiterleitung auf die Index-Seite. Wenn ich die Index-Seite im Browser aufrufe geht diese auch ohne Anmeldung auf. Ich möchte aber das nur bei erfolgreichem Login die Seite aufgeht.
Express Server.js
Bisher gebe ich bei einer erfolgreichen Anmeldung einfach ein Boolean zurück und verarbeite diesen dann im Frontend
Wie kann ich jetzt verhindern das die Seite http://127.0.0.1:3000/index nicht durch die Browsereingabe aufgeht sondern nur über erfolgreichen Login.
Grüße
Florian
ich habe folgendes Problem, ich habe mir eine Login Seite gebastelt welche soweit auch funktioniert. Bei einem erfolgreichem Login erfolgt eine Weiterleitung auf die Index-Seite. Wenn ich die Index-Seite im Browser aufrufe geht diese auch ohne Anmeldung auf. Ich möchte aber das nur bei erfolgreichem Login die Seite aufgeht.
Express Server.js
Javascript:
const express = require("express");
const bodyparser = require("body-parser")
const cors = require("cors");
const path = require('path');
const app = express();
const startRoute = require('./public/routes/start')
const indexRoute = require('./public/routes/index')
const corsOptions = {
origin: "http://127.0.0.1:5500"
};
app.use(cors(corsOptions));
app.use(bodyparser.urlencoded({extended: true}))
app.use(express.json());
app.listen(3000, ()=> console.log("Server läuft!"));
app.use('/',startRoute)
app.use('/index',indexRoute)
app.post("/login",(req, res)=> {
var p = new Promise((resolve,reject)=>{
login(req.body,(callback) => {
resolve(callback);
});
});
p.then((result) => {res.send(result)});
});
Bisher gebe ich bei einer erfolgreichen Anmeldung einfach ein Boolean zurück und verarbeite diesen dann im Frontend
Javascript:
"use strict";
document.getElementById("login").addEventListener("submit",ausgabe);
function ausgabe(event){
event.preventDefault();
let logindata = event.target;
let loginvalue = new FormData(logindata);
const value = Object.fromEntries(loginvalue);
let url = "http://127.0.0.1:3000/login"
const options = {
method: 'POST',
headers:{ 'Content-Type': 'application/json' },
body:JSON.stringify(value)
};
console.log(value);
login(url,options);
}
async function login(url,options){
const response = await fetch(url,options);
const data = await response.text();
console.log(data);
document.querySelector("#an").innerHTML = data;
if (data == 'true'){
window.open("http://127.0.0.1:3000/index", '_self');
//location.href = 'https://www.google.de';
}
}
Wie kann ich jetzt verhindern das die Seite http://127.0.0.1:3000/index nicht durch die Browsereingabe aufgeht sondern nur über erfolgreichen Login.
Grüße
Florian