Laravel 인증: "make:auth 명령이 정의되지 않음" 오류 문제 해결
Laravel 5.2에서 make:auth 명령을 실행하려고 할 때, 명령이 정의되지 않았다는 오류 메시지가 나타날 수 있습니다. 이 문제는 다양한 이유로 발생할 수 있으며 이에 대해 자세히 살펴보겠습니다.
Laravel 버전 5.2 이하에서는 make:auth 명령을 사용할 수 없습니다. Laravel 5.2에서는 다음 명령이 지원됩니다:
Laravel 5.2를 사용하는 경우 다음을 통해 인증 뷰와 경로를 수동으로 생성할 수 있습니다. 다음 단계를 따르세요.
routes.php 파일에 다음 코드를 추가합니다.
<code class="php">// Authentication Routes... Route::get('login', 'Auth\LoginController@showLoginForm')->name('login'); Route::post('login', 'Auth\LoginController@login')->name('login.post'); Route::post('logout', 'Auth\LoginController@logout')->name('logout'); // Registration Routes... Route::get('register', 'Auth\RegisterController@showRegistrationForm')->name('register'); Route::post('register', 'Auth\RegisterController@register')->name('register.post'); // 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');</code>
LoginController.php 파일에 다음 코드를 추가합니다.
<code class="php">namespace App\Http\Controllers\Auth; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Route; class LoginController extends Controller { public function showLoginForm() { return view('auth.login'); } public function login(Request $request) { $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials)) { // The user was authenticated return redirect()->intended(route('home')); } // The user could not be authenticated return redirect()->back()->withErrors(['email' => 'The provided credentials do not match our records.']); } public function logout(Request $request) { Auth::logout(); return redirect()->route('login'); } }</code>
RegisterController.php 파일에 다음 코드를 추가합니다.
<code class="php">namespace App\Http\Controllers\Auth; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Route; class RegisterController extends Controller { public function showRegistrationForm() { return view('auth.register'); } public function register(Request $request) { $this->validate($request, [ 'name' => 'required|string|max:255', 'email' => 'required|string|email|max:255|unique:users', 'password' => 'required|string|min:6|confirmed', ]); // Create the user $user = User::create([ 'name' => $request->name, 'email' => $request->email, 'password' => bcrypt($request->password), ]); // Log the user in Auth::login($user); // Redirect the user to the home page return redirect()->route('home'); } }</code>
ForgotPasswordController.php 파일에 다음 코드를 추가합니다.
<code class="php">namespace App\Http\Controllers\Auth; use Illuminate\Http\Request; use Illuminate\Support\Facades\Password; class ForgotPasswordController extends Controller { public function showLinkRequestForm() { return view('auth.passwords.email'); } public function sendResetLinkEmail(Request $request) { $this->validate($request, [ 'email' => 'required|string|email|max:255', ]); // We will send the reset link to this user. Once we have attempted // to send the link, we will examine the response then see the message we // need to show to the user. Finally, we'll send out a proper // response. $response = Password::sendResetLink( $request->only('email') ); switch ($response) { case Password::RESET_LINK_SENT: return back()->with('status', __($response)); case Password::INVALID_USER: return back()->withErrors(['email' => __($response)]); } } }</code>
ResetPasswordController.php 파일에 다음 코드를 추가합니다.
<code class="php">namespace App\Http\Controllers\Auth; use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Password; use Illuminate\Validation\ValidationException; class ResetPasswordController extends Controller { public function showResetForm(Request $request, $token = null) { return view('auth.passwords.reset')->with( ['token' => $token, 'email' => $request->email] ); } public function reset(Request $request) { $request->validate([ 'token' => 'required', 'email' => 'required|email', 'password' => 'required|min:6|confirmed', ]); // Here we will attempt to reset the user's password. If it is successful we // will update the password on an existing user and return a response // indicating that the user's password has been reset. $response = Password::reset( $request->only('email', 'password', 'password_confirmation', 'token'), function ($user) use ($request) { $user->forceFill([ 'password' => Hash::make($request->password), 'remember_token' => Str::random(60), ])->save(); // In case of large user base, it's recommended to use // $user->setRememberToken(Str::random(60)); // $user->save(); } ); switch ($response) { case Password::PASSWORD_RESET: return redirect()->route('login')->with('status', __($response)); default: throw ValidationException::withMessages([ 'email' => [__($response)], ]); } } }</code>
이 단계를 완료한 후에는 Laravel 5.2 애플리케이션에 작동하는 인증 시스템이 있어야 합니다.
Laravel의 경우 >= 6
Laravel 6 이상에서는 make:auth 명령이 ui 명령으로 대체되었습니다. 이 명령을 사용하여 인증 보기 및 경로를 생성하려면 다음을 실행하세요.
composer require laravel/ui php artisan ui vue --auth php artisan migrate
이 명령은 Laravel UI 패키지를 설치하고 필요한 인증 보기, 경로 및 마이그레이션을 생성합니다.
위 내용은 Laravel 5.2에서 \'make:auth\' 명령이 정의되지 않은 이유는 무엇이며 수동으로 인증을 설정하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!