2010-08-25 13 views
6

Wenn ein Benutzer versucht, über einen Link auf unsere Website zuzugreifen (z. B. auf www.website.com/privatepage), wird er auf eine Anmeldeseite umgeleitet. Sobald sie sich einloggen, wollen wir sie zu dieser beabsichtigten URL umleiten - wie geht das?Beabsichtigte URL-Weiterleitung + Standardumleitung nach dem Login?

Wir haben auch einen Anwendungsfall, bei dem sich ein Benutzer von der Homepage anmeldet oder direkt auf die Anmeldeseite ohne eine beabsichtigte URL geht - in diesem Fall möchten wir sie auf eine Standardseite umleiten.

Kann mir jemand helfen, das herauszufinden?

+0

Sie hätten genauer sagen können, welche te die Sie verwenden. Aber die grundlegende Sache ist, diese URL der Seite zu senden, wenn Sie den Benutzer zur Anmeldung umleiten. Auf diese Weise können Sie die letzte URL aufrufen und nach einer erfolgreichen Anmeldung dorthin umleiten. Lesen Sie etwas über request.referer für weitere Details. – AMIT

+0

Ja, wie Amit sagte, wir können nicht zu viel helfen, ohne die Methoden zu kennen, die Sie verwenden. Meine Antwort ist nur eine allgemeine Hilfe. – palswim

Antwort

4

Wie werden sie auf die Anmeldeseite umgeleitet? Unabhängig davon, mit welcher Methode Sie dies tun, können Sie eine GET-Variable am Ende der Anmeldeseiten-URL anhängen und dann auf die Variable auf der Anmeldeseite verweisen.

So, Benutzer möchte auf www.example.com/privatepage zugreifen, aber Sie müssen sie zuerst bei www.example.com/login anmelden. Leiten Sie sie zu www.example.com/login?targetpage=/privatepage um, dann können Sie im Code für Ihre Anmeldeseite auf die Variable targetpage zugreifen.

3

Ich speichere die Seite normalerweise in einer PHP-Sitzung, bevor ich auf die Anmeldeseite weiterleite. Prüfen Sie nach dem Einloggen, ob der Sitzungswert eingestellt ist, ob er dann auf diese Seite umgeleitet wird.

5

Es könnte eine gute Idee sein, eine Whitelist mit akzeptierten URLs zu haben, wenn Sie auf diese Weise umleiten - andernfalls könnte ein Angreifer jemanden wie zB example.com/login?attacker.com/fake_examplecom verlinken und der Benutzer wird umgeleitet auf die Website des Angreifers, während Sie denken, dass sie sich gerade bei Ihrer Site angemeldet haben. Die ursprüngliche URL verweist auf Ihre Website, sodass sie vertrauenswürdig aussieht. Es gibt eine Menge übler Dinge, die man damit machen kann, wie Sie sich vorstellen können.

6

in Ihre Login-Seite:

wenn Sie www.example.com/private_page gehen

CodeIgniter (auf einem privaten Seite)

// if user is not logged in... 
$_SESSION['redirect'] = $this->uri->segment(1); 
redirect('login'); 

auf Login-Seite

// successfully logged in.. 
if (isset($_SESSION['redirect'])) { 
    redirect($_SESSION['redirect']); 
} else { 
    // redirect to default page 
} 
Verwandte Themen