Ostatnio zaczynam używać laravel 5.3 do pisania bloga, ale po biegu mam pytanie php artisan make:auth
kiedy to uruchomię, wygeneruje trasy w moim web.php
to jest kod w nim:
Auth::routes();
Route::get('/home', 'HomeController@index');
Następnie uruchamiam php artisan route:list
, znajduję wiele akcji, takich jak LoginController @ login ...
Ale nie znalazłem tych działań w moim App\Http\Controllers\Auth
, gdzie to jest?
A także po co to Auth::routes()
stoisko, nie mogę znaleźć tras o Auth.
Potrzebuję pomocy, dziękuję za odpowiedź na moje pytanie
php
laravel
laravel-5
laravel-5.3
g1eny0ung
źródło
źródło
Odpowiedzi:
Auth::routes()
to tylko klasa pomocnicza, która pomaga generować wszystkie trasy wymagane do uwierzytelnienia użytkownika. Zamiast tego możesz przeglądać kod tutaj https://github.com/laravel/framework/blob/5.3/src/Illuminate/Routing/Router.php .Oto trasy
źródło
Auth
jest fasadą i zostanie zdefiniowana w.config/app.php
W tym pliku konfiguracyjnym znajdziesz klasę, która działa jako jej dostawca.NotFoundHttpException in RouteCollection.php line 161:
:, a inny interfejs API działa poprawnie.$this->get('login', 'Auth\LoginController@showLoginForm')->name('login');
nie można uruchomićAuth
apiOto Laravel 5.7 , Laravel 5.8 , Laravel 6.0 i Laravel 7.0 (zwróć uwagę na niewielką zmianę pne w wersji 6.0 w ścieżce weryfikacji e-mailowej).
Tutaj możesz zweryfikować te trasy:
źródło
'email/verify/{id}/{hash}'
. W przeciwnym razie nie można zweryfikować skrótu i zostanie zgłoszony błąd 403 z informacją „Ta akcja jest nieautoryzowana”.Auth Routes dla Laravel 5.3 zamiast Auth :: tours (). Mam nadzieję, że to pomoże...
Jeśli więc zmienisz niektóre nazwy tych tras, pamiętaj, aby zmienić również w widokach działania postów!
źródło
W przypadku Laravel 5.5.x
źródło
kolejność wywołań funkcji:
trasa wygląda tak:
źródło
Auth::routes()
- fasada Auth - pobieraRouter
instancję obiektu z kontenera Laravel i wywołuje istniejącą wcześniej metodęauth
.auth
z kolei definiuje trasy i odpowiadające im kontrolery, które zostały wygenerowane przezphp artisan make:auth
. To jest to.To zadziałało dla mnie z Laravel 5.6 .
W pliku
web.php
po prostu zamień:Przez:
Usuń link Zarejestruj się w dwóch poniższych plikach:
źródło
Jeśli szukasz tych samych tras dla wersji laravel 7, znajdziesz ją tutaj
Vendor/laravel/ui/src/AuthRouteMethods.php
źródło
Jestem zaskoczony, że nikt nie wspomniał o poleceniu
php artisan route:list
, które podaje listę wszystkich zarejestrowanych tras do aplikacji (w tymAuth::routes()
iPassport::routes()
jeśli są zarejestrowane)źródło
klasa loginuser używa cechy o nazwie
AuthenticatesUsers
jeśli otworzysz tę cechę, zobaczysz funkcje (dotyczy to innych kontrolerów)
Illuminate\Foundation\Auth\AuthenticatesUsers;
tutaj jest kod cechy https://github.com/laravel/framework/blob/5.1/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php
przepraszam za zły format, używam telefonu
również
Auth::routes()
wywołuje funkcję, która zwraca trasy autoryzacji, to wszystko (myślę)źródło
vendor\laravel\src\Illuminate\Foundation\Auth\ResetsPasswords
, jeśli chcesz to zmienić, nie zmieniaj tego, po prostu dodaj tę samą metodę do swojego kontrolera, a następnie zmień ją,