web-dev-qa-db-fra.com

laravel 5.3 nouvelle Auth :: routes ()

Récemment, je commence à utiliser laravel 5.3 pour écrire un blog, mais j'ai une question après l'exécution php artisan make:auth

quand je lance ceci, il générera des routes dans mon web.php

c'est le code qu'il contient:

Auth::routes();

Route::get('/home', 'HomeController@index');

Puis je lance php artisan route:list, je trouve beaucoup d’actions, comme LoginController @ login ...

Mais je n'ai pas trouvé ces actions dans mon App\Http\Controllers\Auth, où sont-elles?

Et aussi ce que signifie Auth::routes(), je ne trouve pas les itinéraires relatifs à Auth.

J'ai besoin d'aide, merci de répondre à ma question

105
g1eny0ung

Auth::routes() est simplement une classe d'assistance qui vous aide à générer tous les itinéraires requis pour l'authentification de l'utilisateur. Vous pouvez parcourir le code ici https://github.com/laravel/framework/blob/5.3/src/Illuminate/Routing/Router.php .

Voici les itinéraires

// Authentication Routes...
$this->get('login', 'Auth\LoginController@showLoginForm')->name('login');
$this->post('login', 'Auth\LoginController@login');
$this->post('logout', 'Auth\LoginController@logout')->name('logout');

// Registration Routes...
$this->get('register', 'Auth\RegisterController@showRegistrationForm')->name('register');
$this->post('register', 'Auth\RegisterController@register');

// Password Reset Routes...
$this->get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm');
$this->post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail');
$this->get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm');
$this->post('password/reset', 'Auth\ResetPasswordController@reset');
179
Lee

Auth routes pour Laravel 5.3 à la place, Auth :: routes (). J'espère que ça aide ...

Route::group(['middleware' => ['web']], function() {

// Login Routes...
    Route::get('login', ['as' => 'login', 'uses' => 'Auth\LoginController@showLoginForm']);
    Route::post('login', ['as' => 'login.post', 'uses' => 'Auth\LoginController@login']);
    Route::post('logout', ['as' => 'logout', 'uses' => 'Auth\LoginController@logout']);

// Registration Routes...
    Route::get('register', ['as' => 'register', 'uses' => 'Auth\RegisterController@showRegistrationForm']);
    Route::post('register', ['as' => 'register.post', 'uses' => 'Auth\RegisterController@register']);

// Password Reset Routes...
    Route::get('password/reset', ['as' => 'password.reset', 'uses' => 'Auth\ForgotPasswordController@showLinkRequestForm']);
    Route::post('password/email', ['as' => 'password.email', 'uses' => 'Auth\ForgotPasswordController@sendResetLinkEmail']);
    Route::get('password/reset/{token}', ['as' => 'password.reset.token', 'uses' => 'Auth\ResetPasswordController@showResetForm']);
    Route::post('password/reset', ['as' => 'password.reset.post', 'uses' => 'Auth\ResetPasswordController@reset']);
});

Donc, si vous modifiez certains noms de ces itinéraires, n'oubliez pas de modifier également les actions des messages!

44
Walter Pozzguo

Voici Laravel 5.7 et Laravel 5.8 (pas de changement), y compris routes de vérification , si vous souhaitez également les inclure.

// Authentication Routes...
Route::get('login', 'Auth\LoginController@showLoginForm')->name('login');
Route::post('login', 'Auth\LoginController@login');
Route::post('logout', 'Auth\LoginController@logout')->name('logout');

// Registration Routes...
Route::get('register', 'Auth\RegisterController@showRegistrationForm')->name('register');
Route::post('register', 'Auth\RegisterController@register');

// Password Reset Routes...
Route::get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request');
Route::post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email');
Route::get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.reset');
Route::post('password/reset', 'Auth\ResetPasswordController@reset')->name('password.update');

// Email Verification Routes...
Route::get('email/verify', 'Auth\VerificationController@show')->name('verification.notice');
Route::get('email/verify/{id}', 'Auth\VerificationController@verify')->name('verification.verify');
Route::get('email/resend', 'Auth\VerificationController@resend')->name('verification.resend');

Vous pouvez vérifier ces itinéraires ici:

22
zyglobe

Pour Laravel 5.5.x

// Authentication Routes...
$this->get('login', 'Auth\LoginController@showLoginForm')->name('login');
$this->post('login', 'Auth\LoginController@login');
$this->post('logout', 'Auth\LoginController@logout')->name('logout');

// Registration Routes...
$this->get('register', 'Auth\RegisterController@showRegistrationForm')->name('register');
$this->post('register', 'Auth\RegisterController@register');

// Password Reset Routes...
$this->get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request');
$this->post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email');
$this->get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.reset');
$this->post('password/reset', 'Auth\ResetPasswordController@reset');
14
Farid Movsumov

ordre d'appel de fonction:

  1. (Auth) Illuminate\Support\Facades\Auth @ routes ( https://github.com/laravel/framework/blob/5.3/src/Illuminate/Support/Facades/Auth.php )
  2. (App) Illuminate\Foundation\Application @ auth
  3. (Route) Illuminate\Routing\Router

c'est comme ça:

public function auth()
{
    // Authentication Routes...
    $this->get('login', 'Auth\AuthController@showLoginForm');
    $this->post('login', 'Auth\AuthController@login');
    $this->get('logout', 'Auth\AuthController@logout');
    // Registration Routes...
    $this->get('register', 'Auth\AuthController@showRegistrationForm');
    $this->post('register', 'Auth\AuthController@register');
    // Password Reset Routes...
    $this->get('password/reset/{token?}', 'Auth\PasswordController@showResetForm');
    $this->post('password/email', 'Auth\PasswordController@sendResetLinkEmail');
    $this->post('password/reset', 'Auth\PasswordController@reset');
}
7
SilentCat

Cela a fonctionné pour moi avec Laravel 5.6.

Dans le fichier web.php, remplacez simplement:

Auth::routes();

Par:

//Auth::routes();
// Authentication Routes...
Route::get('admin/login', 'Auth\LoginController@showLoginForm')->name('login');
Route::post('admin/login', 'Auth\LoginController@login');
Route::post('admin/logout', 'Auth\LoginController@logout')->name('logout');
// Password Reset Routes...
Route::get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request');
Route::post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email');
Route::get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.reset');
Route::post('password/reset', 'Auth\ResetPasswordController@reset');

Et supprimez le lien Register dans les deux fichiers ci-dessous:

welcome.blade.php
layouts/app.blade.php
6
maxagaz

la classe loginuser utilise un trait appelé AuthenticatesUsers

si vous ouvrez ce trait, vous verrez les fonctions (ceci s’applique aux autres contrôleurs) Illuminate\Foundation\Auth\AuthenticatesUsers;

voici le code de trait https://github.com/laravel/framework/blob/5.1/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php

désolé pour le mauvais format, j'utilise mon téléphone

aussi Auth::routes() il appelle juste une fonction qui retourne les routes d'authentification c'est tout (je pense)

0
Achraf Khouadja

Je suis surpris que personne n'ait mentionné la commande php artisan route:list, qui donne la liste de tous les itinéraires d'application enregistrés (y compris Auth::routes() et Passport::routes() s'ils sont enregistrés)

0
Shay