Login System

  • Morgen,


    ich wollte mal fragen ob sich ein Login-System über eine REST-API lohnen würde.
    Bisher hatte ich das immer in Verbindung mit Sessions gesehen.


    Welche Methode ist für Anfänger leichter zu realisieren und in Verbindung mit einem Framework wie VueJS leicht zu nutzen?



    Gruß,
    DEWEY

  • Für einen Anfänger in Sachen REST-API's ist gar nichts leicht zu realisieren.
    Welche Art von Backend schwebt dir vor deine Authentifizierung hand zu haben?


    VueJS ist ja vielseitig einsetzbar hab damit ebenfalls schon eine Authentifizierung ("login-sys") realisiert.


    Paar Stichwörter für dich, JWT-Authentification (JSON Web Token).
    Es gibt natürlich auch die Möglichkeit eine Authentifizierung ohne eigenem Backend zu realisieren. Dazu kannst du zB Firebase heranziehen die das für dich übernehmen.


    Ich persönlich hab meine Authentifizierung für div. Projekte mit Java-Spring gelöst.


    Gibt natürlich auch diverse Beispiele online (Github, etc. einfach googeln)

    MFG

  • Das mit einem Token hab ich schon gesehen, nur ist da doch der Nachteil, dass der Token auf dem Client gespeichert wird und leicht geklaut werden könnte.
    Angeblich gibt es mit dem Token auch keine Logout Möglichkeit, weil es ja "stateless" ist.


    Zu sehen wer online ist wäre auch wichtig für mich. Das ist ja nicht mit einer REST-api möglich oder?



    MfG

  • Das mit einem Token hab ich schon gesehen, nur ist da doch der Nachteil, dass der Token auf dem Client gespeichert wird und leicht geklaut werden könnte.
    Angeblich gibt es mit dem Token auch keine Logout Möglichkeit, weil es ja "stateless" ist.


    Zu sehen wer online ist wäre auch wichtig für mich. Das ist ja nicht mit einer REST-api möglich oder?

    "Geklaut werden könnte", ja kommt ganz drauf an wie man etwas wo speichert. Ich sag mal so der Client selbst ist ja lokal und mit einer sichern TLS Verbindung ist das auch nicht "klaubar". Ausser jemand hackt sich in dein System öffnet deinen Browser und sucht den Token in zB der JavaScript Datei raus. Wenn du weißt was ich meint ^^.


    Token sind stateless richtig. Jeder Token hat eine expiration time sprich eine Zeit wann der Token abläuft und nicht mehr funktioniert. Ausloggen funktioniert dennoch du kannst zB einen Token auf eine Art "Blacklist" schreiben bis er abläuft.


    Basierend da drauf dass du Token am Server ebenfalls speichern könntest wäre es theoretisch möglich aber mit keiner Garantie ob der User wirklich online ist. Daher eher nein. (Wie gesagt gibt immer Möglichkeiten etwas zu realisieren kommt jedoch auf den Aufwand bzw. den nutzen an. wenn zB immer nur 3 User drauf sind gebe es genug Wege so etwas schon zu realisieren aber bei 2Mio Usern wäre es nicht mehr so leicht möglich)


    //edit
    Am gang zum Klo viel mir doch noch eine Möglichkeit ein zu sehen wieiviel online sind.
    REST musst ja nicht immer nur RESt sein. Du kannst theoretisch auch einen Socket Schnittstelle einbauen. Sprich jeder der sich einloggt verbindet sich auch automatisch mit dem Socket und verliert logischerweise die Verbindung wenn der Client geschlossen ist. So könntest du theoretisch mitzählen wieviel online sind basierend auf den Verbindungen.

  • Das mit einem Token zum Einloggen finde ich doch etwas zu unüberschaubar.
    Mit einer Socket Verbindung zu wissen welcher User Online ist, wäre natürlich auch eine prima Sache, hatte ich auch schon dran gedacht. Wird gefühlt aber sehr wenig genutzt.


    Wenn ich eine Single-Page mit Vue machen möchte, wo ich ebenfalls einen Socket-Server mit einbinde, ist das doch einiges an Aufwand?


    Da bräuchte ich zuerst einen normalen Webserver und zwei NodeJS. Einen NodeJS für eine REST-api und ein anderer als Socket-Server oder?



    MfG DEWEY

  • Das mit einem Token hab ich schon gesehen, nur ist da doch der Nachteil, dass der Token auf dem Client gespeichert wird und leicht geklaut werden könnte.

    Ich verstehe aber nicht worauf ihr hier hinaus möchtet? Selbst wenn du mit der einer API Arbeiten würdest, würdest du einen Token gegenprüfen um zu prüfen ob dieser noch gültig bzw. gültig ist (bsp. OAuth).


    Wenn ich eine Single-Page mit Vue machen möchte, wo ich ebenfalls einen Socket-Server mit einbinde, ist das doch einiges an Aufwand?


    Da bräuchte ich zuerst einen normalen Webserver und zwei NodeJS. Einen NodeJS für eine REST-api und ein anderer als Socket-Server oder?

    Ich glaube hier wird nicht ganz verstanden, wofür die o.g. Technologien/Funktionen genutzt werden können/sollen.



    Das mit dem User-Online kommt ganz auf deine Implementierung an.

  • Wenn ich anmerken dürfte, er schreibt einen Binder um und braucht nur Hilfe bei dem Login System, da ich mich jetzt nicht mit der verwendeten Methode auskennte.