>백엔드 개발 >PHP 튜토리얼 >Laravel 비밀번호 재설정 기능 구현 방법

Laravel 비밀번호 재설정 기능 구현 방법

小云云
小云云원래의
2018-02-24 09:24:041523검색

이 기능을 빨리 구현하고 싶으신가요? 새로 설치된 Laravel 애플리케이션에서 php artisan make:auth를 실행한 다음(이미 이 명령을 실행했다면 무시해도 됩니다), http://your-app.dev/register 또는 기타 애플리케이션에 할당된 페이지를 방문하세요. 브라우저 URL을 사용하면 이 명령은 비밀번호 재설정을 포함하여 사용자 로그인 및 등록에 필요한 모든 것을 생성합니다!

대부분의 웹 애플리케이션은 사용자에게 비밀번호를 재설정하는 기능을 제공하며, Laravel도 예외는 아닙니다. Laravel은 각 애플리케이션에서 비밀번호를 직접 재설정하지 않고도 비밀번호 재설정 링크를 보내고 비밀번호 재설정 로직을 구현할 수 있는 편리한 방법을 제공합니다.

참고: Laravel에서 제공하는 비밀번호 재설정 기능을 사용하기 전에 사용자 모델은 IlluminateNotificationsNotifying 특성을 사용해야 합니다.

데이터베이스 관련

시작하기 전에 AppUser 모델이 IlluminateContractsAuthCanResetPassword 계약을 구현하는지 확인하세요. 물론 Laravel의 자체 AppUser 모델은 이미 이 인터페이스를 구현하고 있으며 이 인터페이스를 구현하는 데 필요한 메소드를 포함하기 위해 IlluminateAuthPasswordsCanResetPassword 특성을 사용합니다.

재설정 토큰 테이블 마이그레이션 생성

다음으로 비밀번호 재설정 토큰을 저장하는 데 사용되는 테이블을 생성해야 합니다. Laravel에는 이미 이 테이블에 대한 마이그레이션이 포함되어 있으며 데이터베이스/마이그레이션 디렉터리에 저장되어 있습니다. 따라서 여러분이 해야 할 일은 마이그레이션을 실행하는 것뿐입니다:

php artisan migration

이 테이블은 비밀번호 재설정입니다:

routing

Laravel은 AuthForgotPasswordController 및 AuthResetPasswordController 컨트롤러와 함께 제공됩니다(이 두 컨트롤러 클래스는 다음을 통과합니다. php artisan make:auth 명령)은 각각 비밀번호 재설정 링크 이메일을 보내고 사용자 비밀번호를 재설정하는 데 사용됩니다. 비밀번호를 재설정하는 데 필요한 경로는 make:auth 명령을 통해 자동으로 생성되었습니다:

php artisan make:auth

해당 경로는 IlluminateRoutingRouter의 인증 메소드에 정의됩니다:

View

는 동일합니다. 비밀번호를 설정하는 데 필요한 보기 파일도 make:auth 명령을 통해 생성됩니다. 이러한 보기 파일은 필요에 따라

resources/views/auth/passwords 디렉터리에 있습니다.

Reset Password

사용자 비밀번호 재설정 경로와 보기를 정의한 후 브라우저에서 /password/reset을 통해 이 입력 경로에 액세스하기만 하면 됩니다. 프레임워크와 함께 제공되는 ForgotPasswordController에는 이미 비밀번호 재설정 링크 이메일을 보내는 로직이 포함되어 있으며 ResetPasswordController에는 사용자 비밀번호를 재설정하는 로직이 포함되어 있습니다.

등록 이메일을 입력하고 비밀번호 재설정 링크 보내기를 클릭하면 비밀번호 재설정 링크가 나타납니다. 다음 이메일로 이동하세요:


이메일을 열면 다음과 같은 비밀번호 재설정 이메일을 받게 됩니다:

비밀번호 재설정 버튼을 클릭하여 비밀번호 재설정 페이지로 들어갑니다:

양식을 작성하고 제출하면 비밀번호를 재설정할 수 있습니다.

비밀번호가 재설정되면 사용자는 자동으로 애플리케이션에 로그인되고 /home으로 리디렉션됩니다. ResetPasswordController의 RedirectTo 속성을 정의하여 성공적인 비밀번호 재설정 후 리디렉션 링크를 사용자 정의할 수 있습니다.

protected $redirectTo = '/dashboard';

참고: 기본적으로 비밀번호 재설정 토큰은 1시간 이내에 유효합니다. config/auth.php 파일의 만료 옵션을 수정하여 시간을 변경할 수 있습니다.

Customized

Custom Authentication Guard

auth.php 구성 파일에서 여러 "가드"를 구성하여 다중 사용자 테이블을 기반으로 독립적인 인증을 구현할 수 있습니다. 내장된 ResetPasswordController 컨트롤러를 재정의할 수 있습니다. 선택한 가드를 사용하려면 다음과 같이 가드 인스턴스를 반환합니다.

use Illuminate\Support\Facades\Auth;
protected function guard()
{
 return Auth::guard('guard-name');
}

사용자 정의 비밀번호 브로커

구성 파일 auth.php에서 사용자 테이블에 대해 여러 비밀번호를 재설정하기 위해 여러 비밀번호를 구성할 수 있습니다. , 내장된 ForgotPasswordController 및 ResetPasswordController 컨트롤러의 브로커 메소드를 재정의하여 원하는 브로커를 사용할 수 있습니다.

use IlluminateSupportFacadesPassword;

/**
 * 获取密码重置期间所使用的broker.
 *
 * @return PasswordBroker
 * @translator laravelacademy.org
 */
protected function broker()
{
  return Password::broker('name');
}

custom 비밀번호 재설정 이메일

you 비밀번호를 보내는 알림 클래스를 쉽게 편집할 수 있습니다. 사용자 정의 비밀번호 재설정 이메일을 구현하려면 사용자 모델의 sendPasswordResetNotification 메소드를 재정의해야 합니다. 이 메소드에서는 알림 클래스를 사용할 수 있습니다. 이 방법으로 받은 매개변수는 비밀번호 재설정입니다. $token:

/**
 * 发送密码重置通知.
 *
 * @param string $token
 * @return void
 */
public function sendPasswordResetNotification($token)
{
  $this->notify(new ResetPasswordNotification($token));
}

관련 권장 사항:

mysql 루트 비밀번호 재설정 방법을 잊으셨나요

MySQL 루트 비밀번호를 재설정하는 3단계

mysql 데이터베이스 루트 사용자 비밀번호를 잊으셨나요? 재설정 방법_MySQL

위 내용은 Laravel 비밀번호 재설정 기능 구현 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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