Laravel 5.2에서 \'make:auth\' 명령이 정의되지 않은 이유는 무엇이며 수동으로 인증을 설정하려면 어떻게 해야 합니까?

Linda Hamilton
풀어 주다: 2024-10-25 08:03:29
원래의
819명이 탐색했습니다.

Why is the

Laravel 인증: "make:auth 명령이 정의되지 않음" 오류 문제 해결

Laravel 5.2에서 make:auth 명령을 실행하려고 할 때, 명령이 정의되지 않았다는 오류 메시지가 나타날 수 있습니다. 이 문제는 다양한 이유로 발생할 수 있으며 이에 대해 자세히 살펴보겠습니다.

Laravel 버전 5.2 이하에서는 make:auth 명령을 사용할 수 없습니다. Laravel 5.2에서는 다음 명령이 지원됩니다:

  • make:auth
  • make:console
  • make:controller
  • make:entity
  • make:event
  • make:job
  • make:listener
  • make:middleware
  • make:migration
  • make :모델
  • make:정책
  • make:presenter
  • make:provider
  • make:repository
  • make:request
  • make:seeder
  • make:test
  • make:transformer

Laravel 5.2를 사용하는 경우 다음을 통해 인증 뷰와 경로를 수동으로 생성할 수 있습니다. 다음 단계를 따르세요.

  1. routes 디렉터리에 Routes.php 파일을 만듭니다.
  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>
    로그인 후 복사
  3. app/Http/Controllers/Auth 디렉터리에 LoginController.php 파일을 생성합니다.
  4. 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>
    로그인 후 복사
  5. app/Http/Controllers/Auth 디렉터리에 RegisterController.php 파일을 생성합니다.
  6. 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>
    로그인 후 복사
  7. app/Http/Controllers/Auth 디렉터리에 ForgotPasswordController.php 파일을 생성합니다.
  8. 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>
    로그인 후 복사
  9. app/Http/Controllers/Auth 디렉터리에 ResetPasswordController.php 파일을 생성합니다.
  10. 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>
    로그인 후 복사
  11. resources/views/auth 디렉토리를 열고 뷰를 생성하세요.

이 단계를 완료한 후에는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!