본문 바로가기
프로그래밍/Web

Laravel Jetstream Password Update

by 사악신 2024. 1. 8.

라라벨 제트스트림의 보안 기능은 사용자가 오른쪽 상단의 사용자 프로필 탐색 드롭다운 메뉴를 사용하여 접근할 수 있습니다. 이 대시보드 내에서, 제트스트림은 사용자가 계정과 관련된 비밀번호를 업데이트할 수 있도록 뷰를 구조화합니다.

 

 

Actions

대부분의 제트스트림 기능과 마찬가지로, 기능을 구현하는 데 사용되는 기본 로직은 해당하는 액션 클래스를 수정함으로써 사용자 정의될 수 있습니다.

사용자가 비밀번호를 업데이트할 때 `App\Actions\Fortify\UpdateUserPassword` 클래스가 호출됩니다. 이 액션은 입력을 검증하고 사용자의 비밀번호를 업데이트하는 책임이 있습니다.

이 액션은 비밀번호에 적용될 검증 규칙을 결정하기 위해 `App\Actions\Fortify\PasswordValidationRules` 트레이트를 사용합니다. 이 트레이트를 사용자 정의하면 사용자가 등록, 재설정 또는 비밀번호를 업데이트할 때 비밀번호에 적용되는 검증 규칙에 일관되게 영향을 미칩니다.

Password Validation Rules

알 수 있듯이, `App\Actions\Fortify\PasswordValidationRules` 트레이트는 사용자 정의 `Laravel\Fortify\Rules\Password` 검증 규칙 객체를 사용합니다. 이 객체를 사용하면 애플리케이션의 비밀번호 요구 사항을 쉽게 사용자 정의할 수 있습니다. 기본적으로 이 규칙은 최소 8자의 비밀번호를 요구합니다. 그러나 다음 메소드를 사용하여 비밀번호 요구 사항을 사용자 정의할 수 있습니다:

 

use Laravel\Fortify\Rules\Password;

// Require at least 10 characters...
(new Password)->length(10)

// Require at least one uppercase character...
(new Password)->requireUppercase()

// Require at least one numeric character...
(new Password)->requireNumeric()

// Require at least one special character...
(new Password)->requireSpecialCharacter()

 

물론, 이 메소드들은 애플리케이션의 비밀번호 검증 규칙을 정의하기 위해 연쇄적으로 사용될 수 있습니다:

(new Password)->length(10)->requireSpecialCharacter()

 

Views/Pages

일반적으로, 이러한 기능에 대한 뷰와 페이지는 이미 기능이 완성되어 있어 사용자 정의가 필요하지 않습니다. 그러나 이 페이지에 작은 프레젠테이션 조정을 해야 할 경우를 대비하여 위치는 아래에 설명되어 있습니다.

Livewire 스택을 사용하는 경우, 비밀번호 업데이트 뷰는 `resources/views/profile/update-password-form.blade.php` Blade 템플릿을 사용하여 표시됩니다. Inertia 스택을 사용하는 경우, 이 뷰는 `resources/js/Pages/Profile/UpdatePasswordForm.vue` 템플릿을 사용하여 표시됩니다.

반응형

댓글