Laravel에서 비밀번호 재설정 기능을 구현하는 방법
최신 웹 애플리케이션에서 사용자 비밀번호 재설정은 필수 기능입니다. 잘 설계된 비밀번호 재설정 프로세스는 사용자 계정의 보안을 보장할 뿐만 아니라 사용자 경험도 향상시킬 수 있습니다. Laravel은 편리한 비밀번호 재설정 시스템을 통합한 인기 있는 PHP 웹 개발 프레임워크입니다. 이 글에서는 Laravel을 사용하여 비밀번호 재설정 기능을 구현하는 방법을 소개합니다.
환경 준비
시작하기 전에 다음 설치를 완료했는지 확인하세요.
- PHP 7.2 이상
- Composer 2 이상
- Laravel 5.5 이상
아직 설치하지 않은 경우 아직 Laravel은 다음 명령을 통해 터미널에 설치할 수 있습니다:
composer create-project --prefer-dist laravel/laravel project-name
비밀번호 재설정 프로세스
Laravel의 비밀번호 재설정 프로세스는 이메일 알림을 기반으로 하며, 단계는 다음과 같습니다:
- 사용자가 이메일 주소를 제출하고 비밀번호를 재설정해야 하는 애플리케이션 링크
- 애플리케이션은 사용자의 메일함으로 재설정 링크가 포함된 이메일을 보냅니다.
- 사용자가 이메일 링크에 액세스합니다.
- 애플리케이션은 링크가 만료되었고 합법적인지 확인합니다.
- 링크가 합법적이면 페이지에 비밀번호를 입력하는 양식이 나타납니다.
- 사용자가 새 비밀번호를 입력합니다.
- 사용자가 양식을 제출합니다.
- 따라서 우리는 이 프로세스의 모든 단계를 구현해야 합니다.
먼저 Laravel에서 메일을 구성해야 합니다. .env
파일을 열고 다음 구성을 추가하세요.
MAIL_DRIVER=smtp MAIL_HOST=smtp.mxhichina.com MAIL_PORT=25 MAIL_USERNAME=youremail@example.com MAIL_PASSWORD=yourpassword MAIL_FROM_ADDRESS=youremail@example.com MAIL_ENCRYPTION=
여기의 구성은 실제 상황에 따라 수정되어야 합니다. MAIL_DRIVER
는 사용되는 메일 서비스 공급자를 지정합니다. 예를 들어 smtp
, mailgun
또는 sendmail
등입니다. 여기서는 Alibaba Cloud 이메일 서비스 제공업체인 smtp.mxhichina.com, 이메일 사용자 이름과 비밀번호를 입력해야 합니다. <code>MAIL_FROM_ADDRESS
는 이메일 전송을 위한 전송 주소를 지정하는 데 사용됩니다. .env
文件,在其中添加如下配置:
'from' => [ 'address' => env('MAIL_FROM_ADDRESS', 'youremail@example.com'), 'name' => env('MAIL_FROM_NAME', 'Your Name'), ],
这里的配置需要根据您的实际情况进行修改,MAIL_DRIVER
指定了使用的邮件服务提供商,例如 smtp
、mailgun
或 sendmail
等,这里我们使用了阿里云邮件服务提供商 smtp.mxhichina.com
,并且需要填写您的邮箱用户名和密码。MAIL_FROM_ADDRESS
用于指定发送邮件的发送地址。
接下来,我们需要在 config/mail.php
文件中配置邮件发送选项,例如设置发件人名称和地址:
// Password Reset Routes Route::get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request'); Route::post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email'); Route::get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.reset'); Route::post('password/reset', 'Auth\ResetPasswordController@reset');
路由配置
现在,我们需要配置路由来处理密码重置操作。在 Laravel 中,我们可以使用自带的 Password 控制器来处理重置密码的逻辑。打开 routes/web.php
文件,添加以下路由:
<form method="POST" action="{{ route('password.email') }}"> @csrf <div> <input type="email" name="email" value="{{ old('email') }}" required autofocus placeholder="请输入您的邮箱地址"> </div> <div> <button type="submit">发送重置密码链接</button> </div> </form>
这里我们在 Auth
中使用了两个控制器,分别是 ForgotPasswordController
和 ResetPasswordController
,分别处理重置密码邮件发送和密码重置操作。
视图配置
接下来,我们需要添加视图来展示用户填写邮箱和密码的表单。我们可以使用类似以下代码片段的 Blade 模板代码实现:
<form method="POST" action="{{ route('password.update') }}" > @csrf <input type="hidden" name="token" value="{{ $token }}"> <div> <label for="email-input">邮箱</label> <input type="email" name="email" value="{{ $email ?? old('email') }}" required autofocus> </div> <div> <label for="password-input">新密码</label> <input type="password" name="password" required> </div> <div> <label for="password-confirm-input">确认新密码</label> <input type="password" name="password_confirmation" required> </div> <div> <button type="submit">重置密码</button> </div> </form>
在这个页面中,我们使用了一个表单来接受用户填写的邮箱地址,并且添加了一个发送按钮,点击这个按钮将会向该邮箱发送密码重置链接。
我们还需要添加另一个视图来允许用户输入新密码。类似以下代码片段可以用于实现一个这样的表单:
use Illuminate\Support\Facades\Password; class ForgotPasswordController extends Controller { use SendsPasswordResetEmails; } class ResetPasswordController extends Controller { use ResetsPasswords; protected $redirectTo = '/home'; public function showResetForm(Request $request, $token = null) { return view('auth.passwords.reset')->with( ['token' => $token, 'email' => $request->email] ); } }
这个表单需要用户填写新密码和确认密码,并且需要通过 $token
和 $email
参数来验证重置链接是否合法。这些参数可以在 ResetPasswordController@showResetForm
中获取。
控制器逻辑
我们在路由中使用了两个控制器来处理密码重置操作,分别是 ForgotPasswordController
和 ResetPasswordController
。
ForgotPasswordController
提供了一个 showLinkRequestForm()
方法,用于展示用户填写邮箱地址的表单。另外一个方法 sendResetLinkEmail()
将会向用户提供的邮箱地址发送含有密码重置链接的邮件,其中使用了 Password::sendResetLink()
方法来处理重置链接的生成和发送。
ResetPasswordController
中的 showResetForm()
方法将会展示用户输入新密码的表单,如果重置链接不合法则会返回到邮件链接过期的提示页面。reset()
方法则处理了用户填写重置密码表单并提交的逻辑,其中使用了 Password::reset()
config/mail.php
파일에서 발신자 이름 및 주소 설정과 같은 이메일 전송 옵션을 구성해야 합니다. rrreee라우팅 구성
이제 필요합니다. 비밀번호 재설정 작업을 처리하도록 경로를 구성합니다. Laravel에서는 내장된 Password 컨트롤러를 사용하여 비밀번호 재설정 로직을 처리할 수 있습니다.routes/web.php
파일을 열고 다음 경로를 추가하세요: - rrreee
- 여기서는
Auth
에서 두 개의 컨트롤러, 즉ForgotPasswordController
및 ResetPasswordController는 비밀번호 재설정 이메일 전송 및 비밀번호 재설정 작업을 각각 처리합니다. - 보기 구성
- 다음으로 사용자가 이메일과 비밀번호를 입력할 수 있는 양식을 표시하는 보기를 추가해야 합니다. 이를 달성하기 위해 다음 코드 조각과 유사한 블레이드 템플릿 코드를 사용할 수 있습니다. rrreee
- 이 페이지에서는 양식을 사용하여 사용자가 입력한 이메일 주소를 수락하고 보내기 버튼을 클릭하면 메시지가 전송됩니다. 이메일 주소로 메시지를 보내주세요.
rrreee
이 양식을 사용하려면 사용자가 새 비밀번호를 입력하고 비밀번호를 확인해야 하며$token
및 $email
매개변수를 사용하여 재설정 링크가 합법적인지 확인합니다. 이러한 매개변수는 ResetPasswordController@showResetForm
에서 얻을 수 있습니다. 컨트롤러 로직
🎜🎜우리는 비밀번호 재설정 작업을 처리하기 위해 라우팅에 두 개의 컨트롤러, 즉ForgotPasswordController
및 ResetPasswordController
를 사용합니다. 🎜🎜ForgotPasswordController
는 사용자가 이메일 주소를 입력할 수 있는 양식을 표시하는 showLinkRequestForm()
메서드를 제공합니다. 또 다른 메소드인 sendResetLinkEmail()
은 사용자가 제공한 이메일 주소로 비밀번호 재설정 링크가 포함된 이메일을 보냅니다. Password::sendResetLink()
메소드는 다음을 처리하는 데 사용됩니다. 링크 재설정 링크 생성 및 전송을 구성합니다. 🎜🎜ResetPasswordController
의 showResetForm()
메소드는 사용자가 새 비밀번호를 입력하는 양식을 표시합니다. 재설정 링크가 불법인 경우 이메일 링크로 돌아갑니다. 만료 프롬프트 페이지. reset()
메소드는 사용자가 비밀번호 재설정 양식을 작성하고 제출하는 로직을 처리합니다. Password::reset()
메소드는 사용자의 비밀번호를 업데이트하는 데 사용됩니다. 데이터베이스 중간에. 🎜rrreee🎜🎜비밀번호 재설정 기능 사용🎜🎜🎜이제 Laravel에서 비밀번호 재설정 기능 구현이 완료되었으므로 구현된 기능을 사용하여 비밀번호를 재설정해 보겠습니다. 🎜🎜🎜애플리케이션의 로그인 페이지를 엽니다. 🎜🎜 등록된 이메일을 입력하고 비밀번호 재설정 링크 보내기 버튼을 클릭하세요. 🎜🎜 이메일을 열고 비밀번호 재설정 링크를 찾아 클릭하세요. 🎜🎜 새 비밀번호를 입력하고 새 비밀번호를 확인하세요. 제출 버튼. 🎜🎜🎜모든 일이 순조롭게 진행된다면 비밀번호가 성공적으로 재설정된 것입니다! 🎜🎜🎜요약🎜🎜이 글에서는 Laravel을 사용하여 기본 비밀번호 재설정 기능을 구현하는 방법을 소개합니다. 최신 웹 애플리케이션에서 비밀번호 재설정은 필수 기능입니다. 잘 설계되고 구현된 비밀번호 재설정 프로세스만이 사용자 계정과 사용자 경험의 보안을 보장할 수 있습니다. 이 문서에 설명된 기술을 배우고 완전한 비밀번호 재설정 기능을 구현하면 사용자의 비밀번호 보안과 사용자 경험이 향상될 것이라고 믿습니다.
위 내용은 Laravel에서 비밀번호 재설정 기능을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











이 기사는 Laravel에서 OAUTH 2.0 인증 및 승인을 구현하는 자세한 내용입니다. 리그/OAUTH2-SERVER 또는 제공자 별 솔루션과 같은 패키지를 사용하여 데이터베이스 설정 강조, 클라이언트 등록, 인증 서버 Configu

이 기사는 구성 요소를 사용하여 Laravel에서 재사용 가능한 UI 요소를 작성하고 사용자 정의하여 조직을위한 모범 사례를 제공하고 패키지 강화를 제안합니다.

이 기사는 클라우드 네이티브 환경에서 Laravel을 배포하기위한 모범 사례에 대해 설명하고 확장 성, 신뢰성 및 보안에 중점을 둡니다. 주요 문제로는 컨테이너화, 마이크로 서비스, 무국적 설계 및 최적화 전략이 포함됩니다.

이 기사는 Laravel에서 사용자 정의 블레이드 지시문을 만들고 사용하여 템플릿을 향상시키는 것에 대해 설명합니다. 지침 정의, 템플릿에서이를 사용하고 대규모 프로젝트에서 관리하고 개선 된 코드 재사용 성 및 R과 같은 이점을 강조합니다.

이 기사에서는 Laravel에서 사용자 정의 검증 규칙을 작성하고 사용하여이를 정의하고 구현하는 단계를 제공합니다. 재사용 성과 특이성과 같은 이점을 강조하고 Laravel의 검증 시스템을 확장하는 방법을 제공합니다.

이 기사는 Laravel의 최적 파일 업로드 및 클라우드 스토리지 전략을 살펴 봅니다. 로컬 스토리지 대 클라우드 제공 업체 (AWS S3, Google Cloud, Azure, DigitalOcean), 보안 강조 (유효성 검사, 소독, HTTP) 및 성능 OPTI를 검사합니다.

Laravel의 Artisan Console은 코드 생성, 마이그레이션 실행 및 스케줄링과 같은 작업을 자동화합니다. 주요 명령에는 Make : Controller, Migrate 및 DB : SEED가 포함됩니다. 특정 요구에 대해 사용자 정의 명령을 작성할 수 있으며 워크 플로 효율 향상.

이 기사는 Laravel의 라우팅을 사용하여 SEO 친화적 인 URL을 생성, 모범 사례, 표준 URL 및 SEO 최적화 도구를 다루는 것에 대해 설명합니다.
