Vor kurzem habe ich angefangen, laravel 5.3 zu verwenden, um ein Blog zu schreiben, aber ich habe nach dem Ausführen eine Frage php artisan make:auth
wenn ich dies ausführe, werden Routen in meinem web.php
generiert.
das ist der Code darin:
Auth::routes();
Route::get('/home', '[email protected]');
Dann starte ich php artisan route:list
, ich finde viele Aktionen, wie LoginController @ login ...
Aber ich habe diese Aktionen in meinem App\Http\Controllers\Auth
nicht gefunden, wo sind diese?
Und auch wofür steht Auth::routes()
, ich kann die Routen über Auth nicht finden.
Ich brauche jemanden, der mir hilft. Danke, dass Sie meine Frage beantworten
Auth::routes()
ist nur eine Hilfsklasse, mit deren Hilfe Sie alle für die Benutzerauthentifizierung erforderlichen Routen generieren können. Sie können den Code hier durchsuchen https://github.com/laravel/framework/blob/5.3/src/Illuminate/Routing/Router.php stattdessen.
Hier sind die Routen
// Authentication Routes...
$this->get('login', 'Auth\[email protected]')->name('login');
$this->post('login', 'Auth\[email protected]');
$this->post('logout', 'Auth\[email protected]')->name('logout');
// Registration Routes...
$this->get('register', 'Auth\[email protected]')->name('register');
$this->post('register', 'Auth\[email protected]');
// Password Reset Routes...
$this->get('password/reset', 'Auth\[email protected]');
$this->post('password/email', 'Auth\[email protected]');
$this->get('password/reset/{token}', 'Auth\[email protected]');
$this->post('password/reset', 'Auth\[email protected]');
Routen authieren für Laravel 5.3 statt Auth :: routes (). Ich hoffe, es hilft...
Route::group(['middleware' => ['web']], function() {
// Login Routes...
Route::get('login', ['as' => 'login', 'uses' => 'Auth\[email protected]']);
Route::post('login', ['as' => 'login.post', 'uses' => 'Auth\[email protected]']);
Route::post('logout', ['as' => 'logout', 'uses' => 'Auth\[email protected]']);
// Registration Routes...
Route::get('register', ['as' => 'register', 'uses' => 'Auth\[email protected]']);
Route::post('register', ['as' => 'register.post', 'uses' => 'Auth\[email protected]']);
// Password Reset Routes...
Route::get('password/reset', ['as' => 'password.reset', 'uses' => 'Auth\[email protected]']);
Route::post('password/email', ['as' => 'password.email', 'uses' => 'Auth\[email protected]']);
Route::get('password/reset/{token}', ['as' => 'password.reset.token', 'uses' => 'Auth\[email protected]owResetForm']);
Route::post('password/reset', ['as' => 'password.reset.post', 'uses' => 'Auth\[email protected]']);
});
Wenn Sie also einige Namen dieser Routen ändern, denken Sie daran, auch die Aktionen der Posts in den Ansichten zu ändern!
Hier ist Laravel 5.7 und Laravel 5.8 (keine Änderung) einschließlich Überprüfungsrouten , wenn Sie auch diese einbeziehen möchten.
// Authentication Routes...
Route::get('login', 'Auth\[email protected]')->name('login');
Route::post('login', 'Auth\[email protected]');
Route::post('logout', 'Auth\[email protected]')->name('logout');
// Registration Routes...
Route::get('register', 'Auth\[email protected]')->name('register');
Route::post('register', 'Auth\[email protected]');
// Password Reset Routes...
Route::get('password/reset', 'Auth\[email protected]')->name('password.request');
Route::post('password/email', 'Auth\[email protected]')->name('password.email');
Route::get('password/reset/{token}', 'Auth\[email protected]')->name('password.reset');
Route::post('password/reset', 'Auth\[email protected]')->name('password.update');
// Email Verification Routes...
Route::get('email/verify', 'Auth\[email protected]')->name('verification.notice');
Route::get('email/verify/{id}', 'Auth\[email protected]')->name('verification.verify');
Route::get('email/resend', 'Auth\[email protected]')->name('verification.resend');
Sie können diese Routen hier überprüfen:
Für Laravel 5.5.x
// Authentication Routes...
$this->get('login', 'Auth\[email protected]')->name('login');
$this->post('login', 'Auth\[email protected]');
$this->post('logout', 'Auth\[email protected]')->name('logout');
// Registration Routes...
$this->get('register', 'Auth\[email protected]')->name('register');
$this->post('register', 'Auth\[email protected]');
// Password Reset Routes...
$this->get('password/reset', 'Auth\[email protected]')->name('password.request');
$this->post('password/email', 'Auth\[email protected]')->name('password.email');
$this->get('password/reset/{token}', 'Auth\[email protected]')->name('password.reset');
$this->post('password/reset', 'Auth\[email protected]');
funktionsaufrufreihenfolge:
die Route ist wie folgt:
public function auth()
{
// Authentication Routes...
$this->get('login', 'Auth\[email protected]');
$this->post('login', 'Auth\[email protected]');
$this->get('logout', 'Auth\[email protected]');
// Registration Routes...
$this->get('register', 'Auth\[email protected]');
$this->post('register', 'Auth\[email protected]');
// Password Reset Routes...
$this->get('password/reset/{token?}', 'Auth\[email protected]');
$this->post('password/email', 'Auth\[email protected]');
$this->post('password/reset', 'Auth\[email protected]');
}
Das hat bei mir mit Laravel 5.6 geklappt.
Ersetzen Sie in der Datei web.php
einfach:
Auth::routes();
Durch:
//Auth::routes();
// Authentication Routes...
Route::get('admin/login', 'Auth\[email protected]')->name('login');
Route::post('admin/login', 'Auth\[email protected]');
Route::post('admin/logout', 'Auth\[email protected]')->name('logout');
// Password Reset Routes...
Route::get('password/reset', 'Auth\[email protected]')->name('password.request');
Route::post('password/email', 'Auth\[email protected]')->name('password.email');
Route::get('password/reset/{token}', 'Auth\[email protected]')->name('password.reset');
Route::post('password/reset', 'Auth\[email protected]');
Und entfernen Sie den Link Register in den beiden folgenden Dateien:
welcome.blade.php
layouts/app.blade.php
die Klasse loginuser verwendet eine Eigenschaft namens AuthenticatesUsers
.
wenn Sie dieses Merkmal öffnen, werden die Funktionen angezeigt (dies gilt für andere Controller). Illuminate\Foundation\Auth\AuthenticatesUsers;
hier ist der Trait Code https://github.com/laravel/framework/blob/5.1/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php
entschuldigung für das schlechte Format, ich benutze mein Handy
auch Auth::routes()
ruft nur eine Funktion auf, die die Auth-Routen zurückgibt, die es ist (glaube ich)
Ich bin überrascht, dass niemand den Befehl php artisan route:list
erwähnt hat, der eine Liste aller registrierten App-Routen enthält (einschließlich Auth::routes()
und Passport::routes()
, falls registriert).