Laravel 5.1 后密码重置

Password reset in Laravel 5.1

请告诉我如何在我的 Laravel 5.1 应用程序中实现密码重置功能。我正在使用 JWT 为用户提供对系统的访问权限。请告诉我如何实现 'forgot passsword' 功能。我的网站 API 由移动设备使用,当用户了解到他忘记了密码时,用户将按照以下步骤操作

1) 在登录屏幕中,用户将单击 'Forgot password'

2) 在下一步中,用户将输入电子邮件地址并提交。

3) 服务器端代码将电子邮件与系统内注册的所有电子邮件进行比较。如果找到匹配项,将向电子邮件地址发送 link(自毁)重置密码。

4) 用户检查他的电子邮件帐户以找到 link 并使用它来重置密码。

现在我在用户 table 中的代码如下。

<?php

namespace App;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password',
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];


    public function events()
    {
        return $this->hasMany(Event::class);
    }


    public function request()
    {
        return $this->hasOne(Request::class);
    }
}

www.laravel.com/docs/5.1/authentication#resetting-passwords

详细方法参考那里

假设您没有对 laravel 安装进行任何修改。做起来很容易。

用户模型编辑

在 App\User 模型上实施 "Illuminate\Contracts\Auth\CanResetPassword"。

数据库Table迁移

运行 "php artisan migrate" 控制台命令。

路线

将这些路由添加到 routes.php 文件。

// Password reset link request routes...
Route::get('password/email', 'Auth\PasswordController@getEmail');
Route::post('password/email', 'Auth\PasswordController@postEmail');

// Password reset routes...
Route::get('password/reset/{token}', 'Auth\PasswordController@getReset');
Route::post('password/reset', 'Auth\PasswordController@postReset');

查看文件

转到 Resources/views/auth 并创建两个名为

的新文件

password.blade.php and reset.blade.php

password.blade.php内容=>“http://pastebin.com/RkcFU130

reset.blade.php内容=>“http://pastebin.com/6E5Kjqc4

电子邮件查看

现在在 resources/views/emails/password.blade.php.

创建一个名为 password.blade.php 的新文件

将其粘贴到其中。

Click here to reset your password: {{ url('password/reset/'.$token) }}

Post 重置重定向

如果您想将用户重定向到特定 url。您可以将此代码粘贴到 Passwordcontroller.php。将 "dashboard" 替换为您需要重定向到的 link。

protected $redirectTo = '/dashboard';

就这些了:)