메인 콘텐츠로 건너뛰기

laravel/ui에서 마이그레이션하는가

laravel/ui는 Laravel 13에서도 동작합니다. 실제로 laravel/ui의 최신 릴리스는 Laravel 13 compatibility를 포함하고 있습니다. 다만 현행의 공식 스타터 킷은 Fortify 기반입니다. laravel/ui 그대로 운용을 계속하면, 공식의 현재 위치와 조금씩 어긋나 갑니다.
여러분이 기존의 Bootstrap + Blade 구성을 유지하면서 장래의 유지보수성을 올리고 싶다면, 인증 백엔드를 Fortify로 이관하는 마이그레이션이 유효합니다.

마이그레이션의 전체 상

이 마이그레이션은 인증 백엔드만을 치환합니다. UI의 대규모 리뉴얼은 불필요합니다.
  • Fortify에서 인증 라우트 · 인증 처리를 제공
  • 기존의 Bootstrap + Blade 템플릿은 활용
  • 필요한 범위에서 폼의 action이나 입력명을 조정
Fortify는 headless한 인증 백엔드입니다. Fortify 자체는 UI를 제공하지 않으므로, 기존의 Blade를 그대로 활용할 수 있습니다.

Fortify 설치 절차

1

Fortify 패키지 추가

composer require laravel/fortify
2

Fortify의 리소스 공개

php artisan fortify:install
3

마이그레이션 실행

php artisan migrate
4

`laravel/ui`가 추가한 Auth 라우트 삭제

routes/web.phpAuth::routes();Auth::routes([...])를 삭제합니다. Fortify가 /login, /register, /forgot-password 등의 라우트를 제공하므로, 중복을 피해야 합니다.

FortifyServiceProvider 설정

php artisan fortify:install로 공개된 app/Providers/FortifyServiceProvider.php에서 뷰를 연결합니다.
기존의 resources/views/auth를 그대로 사용하는 경우에는, 다음 설정이 마이그레이션의 포인트입니다.
use Laravel\Fortify\Fortify;

public function boot(): void
{
    Fortify::viewPrefix('auth.');
    Fortify::requestPasswordResetLinkView('auth.passwords.email');
    Fortify::resetPasswordView('auth.passwords.reset');
    Fortify::confirmPasswordView('auth.passwords.confirm');
    Fortify::verifyEmailView('auth.verify');
}

Blade 템플릿을 최소 수정

마이그레이션 후, 기존 Blade에서 다음 점을 확인해 주세요.
  • 폼의 action이 Fortify의 엔드포인트를 향하고 있는지 (예: /login, /register, /forgot-password). 대부분은 route('login')이나 route('register')의 라우트명 지정이므로 수정 부분은 적을 것입니다. route(verification.resend')만은 Fortify에서는 route('verification.send')이므로 수정이 필요합니다.
auth/passwords/reset.balde.php는 2군데 수정이 필요합니다.
<input type="hidden" name="token" value="{{ $token }}">
<input type="hidden" name="token" value="{{ $request->route('token') }}">
{{ $email ?? old('email') }}
{{ old('email', $request->email) }}

불필요한 기능 비활성화

laravel/ui에 없었던 기능은 사용할 수 없으므로 config/fortify.php에서 비활성화합니다. 새로 view 파일을 준비하면 활성화할 수 있습니다.
    'features' => [
        Features::registration(),
        Features::resetPasswords(),
        // Features::emailVerification(),
        // Features::updateProfileInformation(),
        // Features::updatePasswords(),
        // Features::twoFactorAuthentication([
        //     'confirm' => true,
        //     'confirmPassword' => true,
            // 'window' => 0,
        // ]),
        // Features::passkeys([
        //     'confirmPassword' => true,
        // ]),
    ],

동작 확인 체크리스트

마이그레이션 후에는 적어도 다음을 확인해 주세요.
1

로그인 / 로그아웃 확인

기존 사용자로 로그인하여, 세션이 올바르게 유지되는 것을 확인합니다.
2

회원가입 확인

신규 사용자 등록이 통과되고, 상정한 화면으로 리다이렉트되는 것을 확인합니다.
3

패스워드 리셋 확인

리셋 메일 송신, 토큰 부여 링크, 재설정 완료까지 일련의 흐름을 확인합니다.

마이그레이션 후의 이점

이 마이그레이션을 수행하면 여러분의 앱은 현행 스타터 킷과 같은 Fortify 기반에 가까워집니다.
그 결과, 장래적으로 2FA나 패스키(Passkeys)를 활성화하기 쉬워집니다.

Laravel Fortify와 스타터 킷

Fortify의 내부 설계, 2FA, Passkeys의 활성화까지 진행하고 싶은 경우에는 이 페이지를 참고하세요.

참고 링크

마지막 수정일 2026년 7월 13일