codenrx/forgetpassword

这是一个用于忘记密码系统的Laravel包

dev-master 2019-09-04 23:21 UTC

This package is auto-updated.

Last update: 2024-09-05 09:55:23 UTC


README

这是一个Laravel包,用于忘记密码系统,您可以通过发送链接到用户的电子邮件来重置密码

请在使用前阅读完整文档!

安装

composer require codenrx/forgetpassword

config/app.phpproviders 数组中添加以下行

codenrx\forgetpassword\ForgetpasswordServiceProvider::class,

然后,使用以下命令在 config 文件夹中发布包配置文件(forgetpassword.php)和在 views 文件夹中的电子邮件模板。

php artisan vendor:publish --provider="codenrx\forgetpassword\ForgetpasswordServiceProvider"

打开项目中的 .env 文件并设置数据库和邮件连接。然后,

php artisan migrate

用法

在您的控制器顶部添加以下行

use codenrx\forgetpassword\Model\Password;

然后,

Password::send($email);

在这里,$email 内容是用户电子邮件。您可以传递 $request->email 或任何内容。

Password::send($email) 帮助您向用户的电子邮件发送链接。注意,它还会检查用户是否存在!如果用户未找到,即电子邮件不在数据库中,它将返回 failed。否则,它将返回 success

此包仅返回两件事

  1. 失败
  2. 成功

其他方法包括

  1. Password::check($token):它帮助您检查令牌是否存在于数据库中!
  2. Password::updatePassword($password, $token) 这里 $password 将是用户的新密码

示例

路由

// Forget Password page
Route::get('/forget-password', 'forgetController@index');
Route::post('/forget-password', 'forgetController@send');

// reset password page
Route::get('/reset-password/{token}', 'forgetController@check');
Route::post('/reset-password/{token}', 'forgetController@update');

更新您的配置文件

前往 config/forgetpassword.php。然后您会看到,

<?php
return [
    'address' => 'mygmail@gmail.com',
    'name' => 'Reset Your Password :: Mysite.com',
    'url' => 'https:url.com/reset-password/' // It's Very Important . 
];

控制器 [方法]

    public function index()
    {
        return view('my-view');
    }

    public function send(Request $request)
    {
        $result = Password::send($request->email);
        if ($result != 'failed') {
            return redirect()->back()->with('success','Reset Password link has been sent to your email');
        } else {
            return "User Not Exixts !!";
        }
    }

    public function check($token)
    {
        $check = Password::check($token);
        if ($check != 'failed') {
            return view('test');
        } else {
            return "Invalid Token !!";
        }
    }

    public function update(Request $request,$token)
    {
    	// No need to hash or bcypt your password ...
        $check = Password::updatePassword($request->password,$token);
        if ($check != 'failed') {
            return redirect()->back()->with('success','Password Changed !!');
        } else {
            return "Invalid Token !!";
        }
    }

自定义

您还可以自定义电子邮件模板。您需要前往 /resources/views/vendor/email

更多信息

享受!