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 generiert web.php
Dies ist der Code darin:
Auth::routes();
Route::get('/home', 'HomeController@index');
Dann laufe ich php artisan route:list
, ich finde viele Aktionen, wie LoginController @ login ...
Aber ich habe diese Aktionen nicht in meinem gefunden App\Http\Controllers\Auth
, wo sind diese?
Und auch, wofür steht der Auth::routes()
Stand, ich kann die Routen über Auth nicht finden.
Ich brauche jemanden, danke, um meine Frage zu beantworten
php
laravel
laravel-5
laravel-5.3
g1eny0ung
quelle
quelle
Antworten:
Auth::routes()
ist nur eine Hilfsklasse, mit der Sie alle für die Benutzerauthentifizierung erforderlichen Routen generieren können. Sie können den Code stattdessen hier https://github.com/laravel/framework/blob/5.3/src/Illuminate/Routing/Router.php durchsuchen .Hier sind die Routen
quelle
Auth
ist eine Fassade und wird in definiert.config/app.php
In dieser Konfigurationsdatei finden Sie die Klasse, die als Anbieter fungiert.NotFoundHttpException in RouteCollection.php line 161:
und eine andere API läuft gut.$this->get('login', 'Auth\LoginController@showLoginForm')->name('login');
nicht in der Lage zu laufenAuth
api istHier sind Laravel 5.7 , Laravel 5.8 , Laravel 6.0 und Laravel 7.0 (beachten Sie eine geringfügige Änderung in 6.0 der E-Mail-Überprüfungsroute).
Sie können diese Routen hier überprüfen:
quelle
'email/verify/{id}/{hash}'
. Andernfalls kann der Hash nicht überprüft werden und es wird ein 403-Fehler mit der Meldung "Diese Aktion ist nicht autorisiert" ausgegeben.Auth-Routen für Laravel 5.3 statt Auth :: route (). Ich hoffe, es hilft...
Wenn Sie also einige Namen dieser Routen ändern, denken Sie daran, auch die Aktionen der Beiträge in den Ansichten zu ändern!
quelle
Für Laravel 5.5.x.
quelle
Funktionsaufrufreihenfolge:
Es ist eine Route wie diese:
quelle
Auth::routes()
- Die Auth-Fassade - Ruft dieRouter
Objektinstanz aus dem Laravel-Container ab und ruft ihre bereits vorhandene Methode aufauth
.auth
definiert wiederum die Routen und ihre jeweiligen Controller, die von generiert wurdenphp artisan make:auth
. Das ist es.Dies funktionierte bei mir mit Laravel 5.6 .
web.php
Ersetzen Sie in der Datei einfach:Durch:
Entfernen Sie den Link Registrieren in den beiden folgenden Dateien:
quelle
Wenn Sie dieselben Routen nach der Laravel 7-Version suchen, finden Sie sie hier
Vendor/laravel/ui/src/AuthRouteMethods.php
quelle
Ich bin überrascht, dass niemand den Befehl erwähnt hat
php artisan route:list
, der eine Liste aller registrierten App-Routen enthält (einschließlichAuth::routes()
undPassport::routes()
falls registriert).quelle
Die Loginuser-Klasse verwendet ein Merkmal namens
AuthenticatesUsers
Wenn Sie dieses Merkmal öffnen, werden die Funktionen angezeigt (dies gilt für andere Controller).
Illuminate\Foundation\Auth\AuthenticatesUsers;
Hier ist der Merkmalcode https://github.com/laravel/framework/blob/5.1/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php
Entschuldigung für das schlechte Format, ich benutze mein Handy
Außerdem
Auth::routes()
ruft es nur eine Funktion auf, die die Authentifizierungsrouten zurückgibt, die es sind (glaube ich).quelle
vendor\laravel\src\Illuminate\Foundation\Auth\ResetsPasswords
, wenn Sie dies oder etwas ändern möchten, ändern Sie dies nicht, fügen Sie einfach die gleiche Methode zu Ihrem Controller hinzu und ändern Sie sie dann