Laravel Sentry Redirect :: beabsichtigt nicht funktioniert

7

Ich versuche, das Sentry-Paket korrekt in meiner App einzurichten.

Ich kann einen Benutzer ein- und ausloggen und Routen schützen, aber ich kann nicht scheinen, dass redirect::intended richtig funktioniert. Mein Verständnis ist, dass ein Benutzer zu der Route zurückgerufen wird, die er ursprünglich aufgerufen hat, bevor er zur Anmeldeseite weitergeleitet wird. Im Moment leitet es einfach weiter zur Standardseite.

In meiner routes.php habe ich folgende Gruppe eingerichtet:

%Vor%

Innerhalb dieser Gruppe habe ich alle geschützten Routen platziert.

In meiner filters.php habe ich folgende Filter:

%Vor%

Route :: filter ('sentryGuest', function () {

%Vor%

In meinem userController habe ich folgenden Code:

%Vor%

Ich habe versucht, auf eine Seite 'books / create' zuzugreifen, ohne eingeloggt zu sein. Ich werde auf die Anmeldeseite geleitet, logge mich aber dann ins Dashboard ein, nicht zu bookings / create.

AM Ich vermisse etwas hier? Gibt es zusätzlichen Code, den ich brauche, um das gewünschte zu erreichen?

    
Ray 27.09.2013, 23:19
quelle

4 Antworten

8

Ich bin mir da nicht sicher, weil ich Sentry nicht für mein aktuelles Projekt verwende. Das ist also nur eine Vermutung.

Da Sie SentryAuth und nicht die native Auth-Klasse in Laravel 4 verwendet haben, scheint das Session-Element für die beabsichtigte URL nicht gesetzt zu sein. Ich schaute auf die API auf dem Redirector Klasse und ich sah dies:

%Vor%

und wie der Code sagt, ist der Sitzungsschlüssel "url.intended". Ich habe dies mit dem nativen Auth-Filter überprüft und die beabsichtigte URL wurde wie erwartet auf Session::get('url.intended') gesetzt.

Eine mögliche Lösung besteht darin, sie manuell in der Sitzung festzulegen. Ein Beispiel wäre:

Auf Ihrem Filter

%Vor%

Auf Ihrer postAuthenticate () -Methode

%Vor%

Teile des Codes wurden aus hier zur Referenz genommen. ^ _ ^

    
reikyoushin 28.09.2013, 04:15
quelle
10

In Ihrer filters.php verwenden Sie unbedingt:

%Vor%

statt

%Vor%

Die Gastfunktion wird die richtigen Sitzungsvariablen für intended () festlegen, damit sie ordnungsgemäß funktionieren.

    
Tom 25.01.2014 15:57
quelle
4

@ reikyoushins Antwort ist ausgezeichnet. Hier ist eine etwas andere Version.

routes.php

%Vor%

und in Ihrer Login-Funktion:

%Vor%     
morphatic 07.01.2014 03:58
quelle
0

Der einfachste Weg.

Verwenden Sie in Ihrem Auth-Filter Folgendes:

%Vor%

In Ihrem Controller:

%Vor%

Fertig.

Außerhalb der Wache:

Dieser Code kann mit jeder Art von Authentifizierungsbibliothek verwendet werden. Sie benötigen zwei Dinge, um die beabsichtigte Umleitung zu implementieren:

1.in Ihrem Authentifizierungsfilter:

%Vor%

2.Nach dem Einloggen eines Benutzers:

%Vor%     
Anam 29.04.2014 07:46
quelle