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

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

Feb 24, 2018 am 09:24 AM
laravel 기능 성취하다

이 기능을 빨리 구현하고 싶으신가요? 새로 설치된 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으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Laravel에서 이메일 전송이 실패 할 때 반환 코드를 얻는 방법은 무엇입니까? Laravel에서 이메일 전송이 실패 할 때 반환 코드를 얻는 방법은 무엇입니까? Apr 01, 2025 pm 02:45 PM

Laravel 이메일 전송이 실패 할 때 반환 코드를 얻는 방법. Laravel을 사용하여 응용 프로그램을 개발할 때 종종 확인 코드를 보내야하는 상황이 발생합니다. 그리고 실제로 ...

laravel 일정 작업이 실행되지 않습니다 : 스케줄 후 작업이 실행되지 않으면 어떻게해야합니까? laravel 일정 작업이 실행되지 않습니다 : 스케줄 후 작업이 실행되지 않으면 어떻게해야합니까? Mar 31, 2025 pm 11:24 PM

laravel 일정 작업 실행 비 응답 문제 해결 Laravel의 일정 작업 일정을 사용할 때 많은 개발자 가이 문제에 직면합니다 : 스케줄 : 실행 ...

Laravel에서는 이메일로 확인 코드를 보내지 못하는 상황을 처리하는 방법은 무엇입니까? Laravel에서는 이메일로 확인 코드를 보내지 못하는 상황을 처리하는 방법은 무엇입니까? Mar 31, 2025 pm 11:48 PM

Laravel의 이메일을 처리하지 않는 방법은 LaRavel을 사용하는 것입니다.

DCAT 관리자에서 데이터를 추가하기 위해 클릭하는 사용자 정의 테이블 기능을 구현하는 방법은 무엇입니까? DCAT 관리자에서 데이터를 추가하기 위해 클릭하는 사용자 정의 테이블 기능을 구현하는 방법은 무엇입니까? Apr 01, 2025 am 07:09 AM

DCAT를 사용할 때 DCATADMIN (LARAVEL-ADMIN)에서 데이터를 추가하려면 사용자 정의의 테이블 기능을 구현하는 방법 ...

Laravel Redis Connection 공유 : 선택 메소드가 다른 연결에 영향을 미치는 이유는 무엇입니까? Laravel Redis Connection 공유 : 선택 메소드가 다른 연결에 영향을 미치는 이유는 무엇입니까? Apr 01, 2025 am 07:45 AM

Laravel 프레임 워크 및 Laravel 프레임 워크 및 Redis를 사용할 때 Redis 연결을 공유하는 데 영향을 줄 수 있습니다. 개발자는 문제가 발생할 수 있습니다. 구성을 통해 ...

Laravel 멀티 테넌트 확장 STANCL/TENANCY : 테넌트 데이터베이스 연결의 호스트 주소를 사용자 정의하는 방법은 무엇입니까? Laravel 멀티 테넌트 확장 STANCL/TENANCY : 테넌트 데이터베이스 연결의 호스트 주소를 사용자 정의하는 방법은 무엇입니까? Apr 01, 2025 am 09:09 AM

Laravel 다중 테넌트 확장 패키지 패키지 패키지 패키지 패키지 Stancl/Tenancy, ...

Bangla 부분 모델 검색의 Laravel Eloquent Orm) Bangla 부분 모델 검색의 Laravel Eloquent Orm) Apr 08, 2025 pm 02:06 PM

Laraveleloquent 모델 검색 : 데이터베이스 데이터를 쉽게 얻을 수 있습니다. 이 기사는 데이터베이스에서 데이터를 효율적으로 얻는 데 도움이되는 다양한 웅변 모델 검색 기술을 자세히 소개합니다. 1. 모든 기록을 얻으십시오. 모든 () 메소드를 사용하여 데이터베이스 테이블에서 모든 레코드를 가져옵니다. 이것은 컬렉션을 반환합니다. Foreach 루프 또는 기타 수집 방법을 사용하여 데이터에 액세스 할 수 있습니다 : Foreach ($ postas $ post) {echo $ post->

PowerToys의 목적은 무엇입니까? PowerToys의 목적은 무엇입니까? Apr 03, 2025 am 12:10 AM

PowerToys는 Windows 사용자를위한 생산성 및 시스템 제어를 향상시키기 위해 Microsoft가 시작한 무료 도구 모음입니다. Fancyzones Management Win

See all articles