paulkatipunan/password_reset

重置密码

dev-master 2018-11-22 08:55 UTC

This package is auto-updated.

Last update: 2024-09-22 22:36:40 UTC


README

Laravel密码重置。

安装

使用Composer安装包

        composer require paulkatipunan/password_reset

在config/app.php中注册包的服务提供者

        'providers' => [

                PaulKatipunan\ServiceProvider::class,

            ],

运行Artisan命令

        php artisan vendor:publish --provider="PaulKatipunan\ServiceProvider" --tag="email-template"

这将发布密码重置链接的电子邮件模板。如果您想修改它,也可以。您可以在电子邮件中包含用户详情。示例

        {{$user->email}}, {{$user->name}}

运行此Artisan命令:如果您想发布更改密码blade文件。

        php artisan vendor:publish --provider="PaulKatipunan\ServiceProvider" --tag="change-password-blade-file"

如果您发布了更改密码的blade文件,在点击电子邮件中发送的链接后,您将被重定向到更改密码的blade文件;如果没有发布blade文件,这将返回一个对象。

示例

        {
          "email": "your_email@gmail.com",
          "token": "MWBtYVqpkotOehmVwPgCSXn3iKgYsdcIWJF7HyLQQESwWgA9pBx3Kw1isMhT",
          "created_at": "2018-11-22 06:09:59"
        }

配置

Laravel的邮件发送器需要配置。在.env文件中填写这些值

        MAIL_DRIVER=smtp
        MAIL_HOST=smtp.gmail.com
        MAIL_PORT=587
        MAIL_USERNAME=your_email@gmail.com
        MAIL_PASSWORD=youemailpassword
        MAIL_ENCRYPTION=ssl
        MAIL_FROM_EMAIL=from_mail@gmail.com
        MAIL_SUBJECT=Reset password

如果您使用Gmail,您还需要启用“不安全应用”

        https://myaccount.google.com/u/1/lesssecureapps

用法

在控制器中,只需使用sendPasswordResetLink()辅助函数,您需要传递电子邮件。

  public function create(Request $request)
  {
    
    return sendPasswordResetLink(request('email'));

  }

如果您已经设置了.env,那么将电子邮件传递给辅助函数并检查您的电子邮件,这将发送密码重置链接。

示例

your view.blade.php

        <html>
               <head></head>
               <body>
                        <form action="{{ route('password.reset') }}" method="post">
                        {{csrf_field()}} 
                                <input type="text" name="email" placeholder="email">
                                <input type="submit" value="submit">
                        </form>
               </body>
        </html>
your route/web.php

      Route::post('password/reset/request', 'PasswordResetController@send')->name('password.reset');
      
your Controller

         public function send(Request $request)
         {

           return sendPasswordResetLink(request('email'));

         }