Mehrere Webseiten über ein Login System organisieren?

3 Antworten

Mache doch eine extra Datenbank nur für die Zugangsdaten/Sessions, die dann von jeder Website abgefragt wird!? o_O

Wenn man dann auf einer von den Seiten eingeloggt ist, ist man auch direkt auf allen anderen Seiten eingeloggt, bzw. friegeschaltet.

Also wenn ich Deine Frage richtig verstanden habe!? Also man loggt sich auf einer von den 5 Websites ein und hat auf alle 5 Websites Zugriff, da bereits angemeldet - oder?! o_O

Woher ich das weiß:Hobby – Programmierer, EDV, ... seit den 80er :)
Mensch4 
Fragesteller
 13.07.2022, 11:56

das ist ne gute idee aber wie soll ich das umsetzen? Die Webseiten wissen ja nichts voneinander, eine webseite auf der der nutzer vorher nicht war weiß ja praktisch nichts, ich meine wie soll die webseite wissen wer die person ist ohne irgendeinen Anhaltspunkt? Gibt es sowas wie seitenübergreifende cookies in PHP?

0

Erwäge, alle Server in ein VPN zu setzen, und deren Dateisystem mittels über Netzwerk eingebundene Laufwerke durch das VPN an einem Punkt zugänglich zu machen.

Damit hast du zentralen Zugang zu allen Dateien, verteilt über alle Computer. Der Computer mit Zugang zu allen Dateien kann dann auch dein üblicher Arbeitsplatzcomputer sein.

Für entsprechende Weiterleitung zu den jeweiligen Servern für User könntest du dir einen "gatekeeper"-geeigneten Server anschauen, z.B. nginx.

Mehrere Webseiten über ein login system organisieren?

Leg eine zentrale Datenbank an, in der Login und PW gespeichert werden. Zusätzlich werden bei jedem User die URLs der Seiten abgespeichert, für die er sich einloggen darf.

Das Loginformular sieht dann so aus:

<form method="post">
<input type="hidden" name="host" value="<?=$_SERVER['SERVER_NAME']?>">
<input name="user">
<input name="pw">
<input type="submit">
</form>

In der Abfrage überprüfst Du, ob der User $_POST['user'] die Berechtigung hat, sich auf der Seite $_POST['host'] anzumelden. Wenn ja setzt du auf der Ressource $_POST['host'] eine session variable $_SESSION['login'] == TRUE, ansonsten $_SESSION['login'] == FALSE.

Alex

Mensch4 
Fragesteller
 13.07.2022, 12:02

theoretisch könnte man ja hergehen und den input von host ändern bevor man das Formular verschickt

0
EinAlexander  13.07.2022, 12:06
@Mensch4
theoretisch könnte man ja hergehen und den input von host ändern bevor man das Formular verschickt

Ja und?

Der User "Otto" darf sich laut deiner Datenbank auf der Seite example.org anmelden. Was hat er davon, wenn er im Formular den input von Host zu "Volksbank.de" ändert?

0
Mensch4 
Fragesteller
 13.07.2022, 12:03

wenn ich eine zentrale Datenbank verwende wissen nutzer nicht dass sie auf anderen seiten einen account haben dann versuchen sie vielleicht sich da einen neuen account zu erstellen und wundern sich warum ihre email adresse schon vergeben ist

0
EinAlexander  13.07.2022, 12:16
@Mensch4
wenn ich eine zentrale Datenbank verwende wissen nutzer nicht dass sie auf anderen seiten einen account haben dann versuchen sie vielleicht sich da einen neuen account zu erstellen und wundern sich warum ihre email adresse schon vergeben ist

Auch das ist kein Problem. Ein User kann sich mehrmals mit derselben Adresse anmelden, aber nur einmal auf jeder Seite. Die Datenbank sieht dann z. B. so aus:

Mail             | PW  | Webseite
-----------------+-----+-----------
info@example.org | XYZ | seite1.tld
-----------------+-----+-----------
info@example.org | ABC | seite2.tld
-----------------+-----+-----------

Registriert sich der User mit info@example.org erneut auf seite1.tld oder auf seite2.tld gibt es einen Fehler ("bereits registriert"), da es die Mail-Webseite-Kombinationen info@example.org plus seite1.tld sowie info@example.org plus seite2.tld bereits gibt.

Registriert sich der User mit info@example.org jedoch auf seite3.tld, geht das problemlos, da es die Mail-Webseite-Kombination info@example.org plus seite3.tld noch nicht gibt. Die Datenbank sieht danach dann so aus:

Mail             | PW  | Webseite
-----------------+-----+-----------
info@example.org | XYZ | seite1.tld
-----------------+-----+-----------
info@example.org | ABC | seite2.tld
-----------------+-----+-----------
info@example.org | 123 | seite3.tld
-----------------+-----+-----------

0