>  기사  >  PHP 프레임워크  >  Laravel에서 사용자 비밀번호를 변경하는 방법에 대해 이야기해 보겠습니다.

Laravel에서 사용자 비밀번호를 변경하는 방법에 대해 이야기해 보겠습니다.

PHPz
PHPz원래의
2023-03-31 13:52:25849검색

Laravel은 사용자 비밀번호 변경을 포함한 다양한 기능을 제공하는 인기 있는 PHP 프레임워크입니다. 이번 글에서는 Laravel에서 사용자 비밀번호를 변경하는 방법을 소개하겠습니다. 구체적인 단계는 다음과 같습니다.

1단계: 비밀번호 변경을 위한 경로 생성

먼저, 사용자 비밀번호 변경을 위한 Laravel 경로를 생성해야 합니다. web.php 파일에 다음 코드를 추가할 수 있습니다:

Route::get('/password', 'UserController@password')->name('password');
Route::post('/password', 'UserController@updatePassword')->name('updatePassword');

여기서 GET 및 POST 경로를 정의합니다. GET 경로는 비밀번호 변경을 위한 양식을 표시하는 데 사용되고, POST 경로는 양식 데이터를 제출하고 비밀번호 업데이트 작업을 수행하는 데 사용됩니다. 동시에 UserController@password 및 UserController@updatePassword는 우리가 만들어야 하는 두 가지 컨트롤러 메서드입니다.

2단계: 비밀번호 변경 양식 만들기

resources/views 디렉터리에 비밀번호 업데이트 양식이 포함된 비밀번호.blade.php 보기 파일을 만듭니다. 다음은 샘플 코드입니다.

<form method="POST" action="{{ route(&#39;updatePassword&#39;) }}">
    {{ csrf_field() }}

    <div class="form-group">
        <label for="current-password">Current Password</label>
        <input type="password" name="current-password" id="current-password" class="form-control" required>
    </div>

    <div class="form-group">
        <label for="new-password">New Password</label>
        <input type="password" name="new-password" id="new-password" class="form-control" required>
    </div>

    <div class="form-group">
        <label for="confirm-password">Confirm New Password</label>
        <input type="password" name="confirm-password" id="confirm-password" class="form-control" required>
    </div>

    <button type="submit" class="btn btn-primary">Submit</button>
</form>

여기에는 현재 비밀번호, 새 비밀번호, 새 비밀번호 확인을 입력하는 데 사용되는 세 개의 입력 상자가 있습니다. 양식의 제출 주소는 경로에서 정의한 경로 이름으로 설정됩니다.

3단계: 컨트롤러 메서드 만들기

이제 UserController 컨트롤러에서 비밀번호와 업데이트패스워드라는 두 가지 메서드를 만들어야 합니다. 샘플 코드는 다음과 같습니다.

public function password()
{
    return view('password');
}

public function updatePassword(Request $request)
{
    $this->validate($request, [
        'current-password' => 'required',
        'new-password' => 'required|string|min:6|confirmed'
    ]);

    $user = Auth::user();
    $currentPassword = $user->password;
    $passwordMatches = Hash::check($request['current-password'], $currentPassword);

    if ($passwordMatches) {
        $user->password = Hash::make($request['new-password']);
        $user->save();
        return redirect()->back()->with('success', 'Password updated successfully!');
    } else {
        return redirect()->back()->withErrors(['current-password' => 'Incorrect current password.']);
    }
}

updatePassword 메소드에서는 먼저 양식 입력이 규칙을 준수하는지 확인합니다. 그런 다음 Auth::user() 메소드를 통해 현재 사용자 데이터를 얻은 후, Hash::check() 메소드를 통해 현재 비밀번호가 데이터베이스의 비밀번호와 일치하는지 확인합니다. 비밀번호가 성공적으로 일치하면 Hash::make() 메소드를 사용하여 새 비밀번호를 해시하고 데이터베이스에 저장합니다.

4단계: 비밀번호 변경 기능 테스트

이제 경로, 양식 및 컨트롤러 메서드를 만들었습니다. localhost/password 주소에 접속하여 비밀번호 변경 페이지에 접속하여 작성한 코드를 테스트할 수 있습니다. 모든 것이 순조롭게 진행되면 사용자가 비밀번호를 변경하도록 할 수 있습니다!

결론

Laravel에서는 사용자 비밀번호를 변경하는 것이 매우 편리합니다. 이 기능을 구현하려면 양식, 경로 및 컨트롤러 메서드만 생성하면 됩니다. 이 글이 Laravel에서 사용자 비밀번호를 변경하는 데 도움이 되기를 바랍니다.

위 내용은 Laravel에서 사용자 비밀번호를 변경하는 방법에 대해 이야기해 보겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.