Software Challenge : Login Tokens

Allgemeines

Man kann nun LoginTokens erstellen um sie z.B. per E-Mail zu verschicken. Wenn man eine URL mit einem solchen Token besucht, so wird man unmittelbar mit dem zugehörigen Account eingeloggt.

Ein LoginToken ist immer nur für einen Login gültig und spezifiziert genau den Benutzer der damit eingeloggt werden soll. Zudem ist ein LoginToken nach der Erstellung nur 2 Wochen gültig.

Verwendung

LoginTokens können unabhängig von der Seite die man besuchen will einfach als Parameter der URL hinzugefügt werden (z.B. contest_url(@contest,:login_token => @login_token.code) oder manuell "http://www.software-challenge.de/wettkampf/2011?login-token=sdfsdfsdf3q3w" ).

Sicherheit

Der Code der zu dem Token gehört ist ein 20-40 Zeichen langer, zufällig erzeugter A..Z,a..z,0…9 String, der unabhängig vom Passwort oder dem Salt der Users ist.

Wird der Code benutzt, so wird das entsprechende Token sofort zerstört.

Nach 2 Wochen ist ein Token ungültig, findet ein Login-Versuch damit statt, so scheitert er und das Token wird auch zerstört.

Wunsch:

In Zukunft wäre es schön, wenn man definieren könnte für welche Controller ein LoginToken gültig ist, um z.B. nur den Zugriff auf Umfragen oder ähnliches zu erlauben ohne vollen Zugriff auf Clients und Profil zu gestatten.