암호를 재설정


ㅋㅋ >

소개

  • {팁} 빠른 시작을 원하시나요? 새로운 Laravel 애플리케이션에서 php artisan make:auth를 실행한 다음 브라우저에서 http://your-app.test/register를 열거나 알려주세요. 애플리케이션에는 임의의 URL이 할당됩니다. 이 명령은 비밀번호 재설정을 포함하여 전체 인증 시스템을 설정하는 역할을 합니다!
  • 대부분의 웹 애플리케이션은 사용자에게 비밀번호를 재설정할 수 있는 기능을 제공합니다. 모든 애플리케이션에서 이 기능을 다시 구현하도록 강요하는 대신 Laravel은 비밀번호 알림을 보내고 비밀번호 재설정을 수행하는 편리한 방법을 제공합니다.
  • {note} Laravel의 비밀번호 재설정 기능을 사용하기 전에 사용자 모델은 IlluminateNotificationsNotifying 특성을 사용해야 합니다.
  • Database Notes

    먼저 AppUser 모델이 IlluminateContractsAuthCanResetPassword 계약을 구현하는지 확인하세요. 물론 프레임워크에 포함된 AppUser 모델은 이미 이 인터페이스를 구현하고 IlluminateAuthPasswordsCanResetPassword 특성을 사용하여 이를 구현하는 데 필요한 메서드를 포함합니다. AppUser 模型是否实现了 IlluminateContractsAuthCanResetPassword 契约。当然,框架中包含的 AppUser 模型已经实现了该接口,并且使用了 IlluminateAuthPasswordsCanResetPassword trait t 来包含实现该接口所需的方法。

    生成重置令牌的表迁移

    接下来,必须创建一张数据表来存储密码重置令牌。该数据表的迁移已包含在 Laravel 应用的 database/migrations 目录中。 所以,你需要做的只是执行数据库迁移命令:

    php artisan migrate

    路由

    Laravel 已在 AuthForgotPasswordControllerAuthResetPasswordController 类中包含了发送密码重置链接电子邮件和重置用户密码的逻辑。所有执行密码重置所需的路由可以使用 Artisan 命令 make:auth 来生成:

    php artisan make:auth

    视图

    当执行 make:auth 命令时,Laravel 会生成重置密码所需的所有视图。 这些视图位于  resources/views/auth/passwords 目录中。你可以根据你应用的需要随意修改这些视图。

    重置密码后

    一旦你定义了重置用户密码的路由和视图,你可以在浏览器中访问 /password/reset 这个路由来重置密码。框架中的  ForgotPasswordController 已包含发送密码重置链接电子邮件的逻辑,同时 ResetPasswordController 包含了重置用户密码的逻辑。

    在重置密码后,用户将会自动登录并重定向到 /home。 你可以通过在 ResetPasswordController 中定义一个 redirectTo 属性来自定义密码重置后重定向的位置:

    protected $redirectTo = '/dashboard';

    {note} 默认情况下,密码重置令牌会在一小时后过期。你可以通过 config/auth.php 文件中的密码重置  expire 选项对此进行修改。

    自定义

    自定义身份验证看守器

    在你的 auth.php 配置文件中,你可以配置多个「看守器」,可以用来定义多个用户表的身份验证行为。你可以自定义框架中的 ResetPasswordController ,通过重写该控制器中的  guard

    재설정 토큰을 생성하기 위한 테이블 마이그레이션

    다음으로 비밀번호 재설정 토큰을 저장하기 위한 데이터 테이블을 생성해야 합니다. 이 데이터 테이블에 대한 마이그레이션은 Laravel 애플리케이션의 database/migrations 디렉터리에 포함되어 있습니다. 따라서 데이터베이스 마이그레이션 명령을 실행하기만 하면 됩니다:
    use Illuminate\Support\Facades\Auth;protected function guard(){ 
       return Auth::guard('guard-name');
     }
    🎜🎜
    🎜🎜routing 🎜🎜 Laravel에는 AuthForgotPasswordControllerAuthResetPasswordController 클래스에 비밀번호 재설정 링크 이메일을 보내고 사용자 비밀번호를 재설정하는 로직이 포함되어 있습니다. 비밀번호 재설정을 수행하는 데 필요한 모든 경로는 Artisan 명령어 make:auth를 사용하여 생성할 수 있습니다: 🎜
    use Illuminate\Support\Facades\Password;
    /**
     * 获取在密码重置期间使用的代理。
     *
     * @return PasswordBroker
     */
     protected function broker(){  
       return Password::broker('name');
     }
    🎜🎜
    🎜🎜Views🎜🎜 make:auth 명령을 실행할 때 Laravel은 비밀번호를 재설정하는 데 필요한 모든 뷰를 생성합니다. 이러한 보기는 resources/views/auth/passwords 디렉터리에 있습니다. 애플리케이션의 필요에 따라 이러한 보기를 자유롭게 수정할 수 있습니다. 🎜🎜🎜
    🎜🎜비밀번호 재설정 후 🎜🎜사용자 비밀번호 재설정을 정의한 후 보기에서는 브라우저의 /password/reset 경로에 액세스하여 비밀번호를 재설정할 수 있습니다. 프레임워크의 ForgotPasswordController에는 비밀번호 재설정 링크 이메일을 보내는 로직이 이미 포함되어 있고, ResetPasswordController에는 사용자 비밀번호를 재설정하는 로직이 포함되어 있습니다. 🎜🎜비밀번호를 재설정하면 사용자는 자동으로 로그인되어 /home으로 리디렉션됩니다. ResetPasswordController에서 redirectTo 속성을 ​​정의하여 비밀번호 재설정 후 리디렉션 위치를 사용자 정의할 수 있습니다. 🎜
    /**
     * 发送密码重置通知。
     *
     * @param  string  $token
     * @return void
     */
     public function sendPasswordResetNotification($token){ 
        $this->notify(new ResetPasswordNotification($token));
     }
    🎜{note} 기본적으로 비밀번호 재설정 구성 토큰은 1시간 후에 만료됩니다. config/auth.php 파일의 비밀번호 재설정 expire 옵션을 통해 이를 수정할 수 있습니다. 🎜
    🎜🎜
    🎜🎜Customization🎜
    🎜

    사용자 정의 인증 감시자

    🎜auth.php 구성 파일에서 여러 "감시자"를 구성할 수 있으며 여러 사용자에 대한 인증 동작을 정의하는 데 사용할 수 있습니다 테이블. 컨트롤러의 guard 메서드를 재정의하여 원하는 가드를 사용하도록 프레임워크의 ResetPasswordController를 사용자 정의할 수 있습니다. 이 메소드는 가드 인스턴스를 반환해야 합니다: 🎜rrreee🎜🎜

    사용자 정의 비밀번호 프록시

    auth.php 구성 파일에서 여러 사용자 테이블의 비밀번호를 재설정하는 데 사용할 수 있는 여러 비밀번호 "프록시"를 구성할 수 있습니다. 프레임워크에서 ForgotPasswordControllerResetPasswordController를 사용자 정의하고 컨트롤러에서 broker 메서드를 재정의하여 선택한 브로커를 사용할 수 있습니다. auth.php 配置文件中,你可以配置多个密码「代理」,可以用来重置多个用户表上的密码。你可以自定义框架中的 ForgotPasswordControllerResetPasswordController , 通过重写控制器中的  broker 方法来使用你所选择的代理:

    rrreee

    自定义密码重置邮件

    你可以轻松地修改用于向用户发送密码重置链接的通知类。首先,重写  User 模型中的 sendPasswordResetNotification 方法。 在此方法中,你可以使用任何你所选择的通知类来发送通知。该方法接收的第一个参数是密码重置令牌  $token rrreee< div name="4cdf0a" data-unique="4cdf0a">

    사용자 정의 비밀번호 재설정 이메일사용자에게 비밀번호 재설정 링크를 보내는 데 사용되는 알림 클래스를 쉽게 수정할 수 있습니다. 먼저 User 모델에서 sendPasswordResetNotification 메서드를 재정의하세요. 이 방법에서는 원하는 알림 클래스를 사용하여 알림을 보낼 수 있습니다. 이 방법으로 받은 첫 번째 매개변수는 비밀번호 재설정 토큰 $token입니다.
    rrreee
    이 글은 🎜LearnKu.com🎜 웹사이트에 처음 게시되었습니다. 🎜🎜