set semula kata laluan


    Nota Pangkalan Data

    Mula-mula, sahkan bahawa model AppUser anda melaksanakan kontrak IlluminateContractsAuthCanResetPassword. Sudah tentu, model AppUser yang disertakan dalam rangka kerja sudah melaksanakan antara muka ini dan menggunakan ciri IlluminateAuthPasswordsCanResetPassword untuk memasukkan kaedah yang diperlukan untuk melaksanakannya. 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

    Penghijrahan jadual untuk menjana token tetapan semula

    Seterusnya, jadual data mesti dibuat untuk menyimpan token tetapan semula kata laluan. Migrasi untuk jadual data ini disertakan dalam direktori database/migration aplikasi Laravel. Jadi, apa yang anda perlu lakukan ialah melaksanakan perintah pemindahan pangkalan data:
    use Illuminate\Support\Facades\Auth;protected function guard(){ 
       return Auth::guard('guard-name');
     }
    🎜🎜
    🎜🎜routing 🎜🎜 Laravel telah memasukkan logik untuk menghantar e-mel pautan tetapan semula kata laluan dan menetapkan semula kata laluan pengguna dalam kelas AuthForgotPasswordController dan AuthResetPasswordController. Semua laluan yang diperlukan untuk melakukan penetapan semula kata laluan boleh dijana menggunakan perintah Artisan make:auth: 🎜
    use Illuminate\Support\Facades\Password;
    /**
     * 获取在密码重置期间使用的代理。
     *
     * @return PasswordBroker
     */
     protected function broker(){  
       return Password::broker('name');
     }
    🎜🎜
    🎜🎜Views🎜🎜Apabila melaksanakan perintah make:auth, Laravel akan menjana semua pandangan yang diperlukan untuk menetapkan semula kata laluan anda. Paparan ini terdapat dalam direktori resources/views/auth/passwords. Anda bebas untuk mengubah suai pandangan ini mengikut keperluan aplikasi anda. 🎜🎜🎜
    🎜🎜Selepas menetapkan semula kata laluan 🎜🎜Setelah anda menentukan tetapan semula kata laluan pengguna Laluan dan paparan, anda boleh mengakses laluan /password/reset dalam penyemak imbas untuk menetapkan semula kata laluan anda. ForgotPasswordController dalam rangka kerja sudah mengandungi logik untuk menghantar e-mel pautan tetapan semula kata laluan, manakala ResetPasswordController mengandungi logik untuk menetapkan semula kata laluan pengguna. 🎜🎜Selepas menetapkan semula kata laluan, pengguna akan log masuk secara automatik dan dialihkan ke /home. Anda boleh menyesuaikan lokasi ubah hala selepas penetapan semula kata laluan dengan mentakrifkan atribut redirectTo dalam ResetPasswordController: 🎜
    /**
     * 发送密码重置通知。
     *
     * @param  string  $token
     * @return void
     */
     public function sendPasswordResetNotification($token){ 
        $this->notify(new ResetPasswordNotification($token));
     }
    🎜{note} Secara lalai, tetapan semula kata laluan Token konfigurasi akan tamat tempoh selepas satu jam. Anda boleh mengubah suai ini melalui pilihan tetapan semula kata laluan expire dalam fail config/auth.php. 🎜
    🎜🎜
    🎜🎜Customization🎜
    🎜

    Pemerhati pengesahan tersuai

    🎜Dalam fail konfigurasi auth.php anda, anda boleh mengkonfigurasi berbilang "pemerhati", anda boleh gunakan untuk menentukan tingkah laku pengesahan untuk berbilang pengguna meja. Anda boleh menyesuaikan ResetPasswordController dalam rangka kerja untuk menggunakan pengawal pilihan anda dengan mengatasi kaedah guard dalam pengawal. Kaedah ini sepatutnya mengembalikan contoh pengawal: 🎜rrreee🎜🎜

    Proksi Kata Laluan Tersuai

    Dalam fail konfigurasi auth.php anda, anda boleh mengkonfigurasi berbilang "proksi" kata laluan yang boleh digunakan untuk menetapkan semula kata laluan pada berbilang jadual pengguna. Anda boleh menyesuaikan ForgotPasswordController dan ResetPasswordController dalam rangka kerja dan menggunakan broker pilihan anda dengan mengatasi kaedah broker dalam pengawal: auth.php 配置文件中,你可以配置多个密码「代理」,可以用来重置多个用户表上的密码。你可以自定义框架中的 ForgotPasswordControllerResetPasswordController , 通过重写控制器中的  broker 方法来使用你所选择的代理:

    rrreee

    自定义密码重置邮件

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

    E-mel Tetapan Semula Kata Laluan TersuaiAnda boleh mengubah suai kelas pemberitahuan yang digunakan untuk menghantar pautan tetapan semula kata laluan kepada pengguna dengan mudah. Mula-mula, ganti kaedah sendPasswordResetNotification dalam model User. Dalam kaedah ini, anda boleh menggunakan mana-mana kelas pemberitahuan pilihan anda untuk menghantar pemberitahuan. Parameter pertama yang diterima oleh kaedah ini ialah token tetapan semula kata laluan $token:
    rrreee
    Artikel ini pertama kali diterbitkan di tapak web 🎜LearnKu.com🎜. 🎜🎜