Passwort ändern reset-redirect-Links in Laravel 5
Ich bin nach diese tutorial zum einrichten der Authentifizierung mit Laravel und ich bin vor allem dort, abgesehen von einem bisschen.
Wenn ich eine Anfrage für ein Passwort-reset bekomme ich eine E-Mail geschickt, um mich und wenn ich auf den link in der email, die ich bekommen, um eine form, die ich dann füllen Sie korrekt und erwarten, Weiterleitung zurück zum dashboard, aber dies nie passiert, und stattdessen leitet weiter auf /home.
Kann ich kein code wie das alles geschieht hinter den kulissen von Laravel. Jede Hilfe zu schätzen : ).
- Lassen Sie mich konsultieren, meine Kristallkugel... Nee, nichts. Wie über Sie schreiben einige code, damit ich nicht haben, um zu versuchen, Wünschelruten es?
- Ich bin mir nicht sicher, welcher code zu posten, wie so ziemlich alle Arbeit ist getan, hinter den kulissen von Laravel
- Sie gehen zu müssen, um einige Arbeit zu tun, um das Problem einzugrenzen, dann sind Sie es nicht? Es gibt keinen Weg, wir wissen können, was Ihr code tut, dieses zu verursachen. Wenn ich installieren eine neue Kopie von Laravel es funktioniert gut. Starten Sie es (mit einer frischen Kopie) und starten Sie die änderungen vorgenommen haben, testen Sie es auf jeder Stufe, bis es endlich aufhört zu arbeiten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist, weil Sie erwarten, dass die Passwort zurücksetzen-controller leiten Sie auf
/dashboard
auf eine erfolgreiche zurückgesetzt. Vielleicht bin ich falsch, aber ich kann nicht finden Sie überall im code, wo angegeben ist (basiert wie Sie sagen auf eine frische Laravel installieren).Um dies zu demonstrieren, lassen Sie uns Folgen Sie den code:
Standardmäßig in einem frischen Laravel installation erhalten Sie eine
PasswordController
in Ihremapp/Http/Controllers/Auth/
- Verzeichnis. Auf Zeile 21 der Datei, es 'enthält' dieResetsPasswords
Merkmal. Also schauen wir uns diese Eigenschaft.Wie Sie sehen können, in der
postReset
- Methode (das ist die Methode, die ausgeführt wird, um das eigentliche Passwort-reset), auf Zeile 95 die Umleitung Lage verschobenenredirectPath
, und wie Sie sehen können, auf Linie 131 den speziellen code leitet den Nutzer zu/home
wenn keineredirectPath
oderredirectTo
Eigenschaft vorhanden auf dem controller.Also, manuell die Umleitung Lage, gleich
protected $redirectPath = '/dashboard';
in IhremHttp\Controllers\Auth\PasswordController
Klasse.Aber auch, auf der Seite, die du verlinkt sind, finden Sie im Abschnitt "Nach dem zurücksetzen der Passwörter" für die offiziellen docs auf dieser.
Für Laravel 5.3 haben Sie, um eine Immobilie
redirectPath
in IhremPasswordController
die verwendet wird für die Weiterleitung nach dem login, wenn Sie verwenden die eingebaute Funktion von Laravel.Sollte wie folgt Aussehen:
Seit Laravel 5.4 die Eigenschaft umbenannt
$redirectTo
:protected $redirectTo = '/';
Sie können auch Lesen Sie hier mehr: laravel.com/docs/5.4/authentication#authentication-quickstart unter Pfad-AnpassungWenn jemand braucht andere Adresse umleiten, wenn (basierend auf e.g Benutzer-Rolle) können fügen Sie diese zu ResetPasswordController
Wenn Sie mit Funken, müssen Sie Sie überschreiben
getResetSuccessResponse()
im/spark/src/Http/Controllers/Auth/PasswordController.php
.Warum?
Weil
/spark/src/Http/Controllers/Auth/PasswordController.php
verwendet dieResetsPasswords trait
hat diegetResetSuccessResponse()
und leitet es an dieredirectPath()
stammt aus derRedirectsUsers trait
ist Teil des Laravel-framework, das nicht geändert werden kann.Irgendwie ist das ignorieren der
$redirectTo
Eigentum und das senden der Benutzer/home
statt, was erklärt wurde, in$redirectTo
:Oder vielleicht gerade das
$redirectPath
Grundstück irgendwo.Hoffe, das jemand hilft!
In Laravel 5.6
$redirectPath
ist kein gültiges Attribut. Verwenden$redirectTo
statt.Finden Sie unter: Dokumentation
Ändern Sie den Wert des Feldes
redirectTo
vonHttp\Controllers\Auth\ResetPasswordController
:wenn Sie möchten, verwenden Sie eine dynamische route, aufwertet, das Feld aus dem Konstruktor: