Ich arbeite an einem Laravel-Projekt. Ich war nicht der ursprüngliche Entwickler, also wenn ich einen Fehler mache, verzeih mir und erkläre bitte, was es war.Vermeiden Sie "Auto-Login", wenn das Passwort zurückgesetzt wird
In diesem Projekt haben wir ein Modul, um ein neues Passwort anzufordern. Wenn das Formular übermittelt wird, wird der Benutzer zu route('password.request')
umgeleitet, die, glaube ich, irgendwo im Framework versteckt ist.
Das Problem ist, dass wenn der Benutzer sein neues Passwort bekommt, er automatisch eingeloggt ist und auf die Seiten zugreifen kann. Aber das soll er nicht, denn er hat keine Adminrechte.
Also habe ich versucht, mich abzumelden und umleiten den Benutzer auf die Hauptseite, ohne Glück.
Kann jemand erklären, warum Laravel (oder "ich", wie sie sind einige Teile des Projekts, die ich noch nicht erforscht habe) das tun und wie das zu beheben?
reset.blade.php (Formular neues Passwort anzufordern)
form class="form-horizontal" role="form" method="POST" action="{{ route('password.request') }}">
{{ csrf_field() }}
<input type="hidden" name="token" value="{{ $token }}">
....
meine individuelle Abmelde Route:
Route::get('/customLogout', 'Auth\[email protected]');
resetPasswordController.php
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ResetsPasswords;
class ResetPasswordController extends Controller
{
/*
|--------------------------------------------------------------------------
| Password Reset Controller
|--------------------------------------------------------------------------
|
| This controller is responsible for handling password reset requests
| and uses a simple trait to include this behavior. You're free to
| explore this trait and override any methods you wish to tweak.
|
*/
use ResetsPasswords;
/**
* Where to redirect users after resetting their password.
*
* @var string
*/
protected $redirectTo = '/customLogout';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest');
}
}
Methode in LoginController.php
public function customLogout(){
//Session::flush();
return redirect()->route('/');
}
Wie Sie „Das Problem erwähnt, dass, wenn der Benutzer wird es neue Passwort ist, wird er automatisch eingeloggt und zugreifen die Seiten." . Grundsätzlich ist dies der tatsächliche Durchfluss. wenn Sie Ihr Passwort zurücksetzen. Sie sollten sich automatisch an der Site anmelden. Also, was ist dein Problem? –
@ Tej, von meinem Verständnis, die Op will nicht automatisch einloggen. – Option
Dann gibt es nur einen Weg. Sie müssen Ihre Sitzung leeren und Ihre Logout-Funktion aufrufen. Benutzer wird zur Hauptseite umleiten. Aber ich empfehle diesen Ansatz nicht. –