请告诉我如何在Laravel 5.1应用程序中实现密码重置功能。我正在使用JWT为用户提供对系统的访问权限。请告诉我如何实施忘记密码'功能。我的Web API由移动设备使用,当用户知道他忘记了密码时,用户将按照以下步骤进行操作
1)在登录屏幕中,用户将点击“忘记密码”
2)在下一步中,用户将输入电子邮件地址并提交。
3)服务器端代码将电子邮件与系统中注册的所有电子邮件进行比较。如果找到匹配项,则会将重置密码的链接(自毁)发送到电子邮件地址。
4)用户检查他的电子邮件帐户以查找链接并使用它来重置密码。
现在我在用户表中的代码如下所示。
<?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);
}
}
答案 0 :(得分:3)
www.laravel.com/docs/5.1/authentication#resetting-passwords
请参阅详细方法。
假设您没有对laravel安装进行任何修改。这很容易做到。
用户模型编辑
实施&#34;照亮\合同\ Auth \ CanResetPassword&#34;在App \ User Model。
数据库表迁移
运行&#34; php artisan migrate&#34;控制台上的命令。
<强> 路线 强>
将这些路线添加到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和reset.blade.php
password.blade.php content =&gt; &#34; http://pastebin.com/RkcFU130&#34;
reset.blade.php content =&gt; &#34; http://pastebin.com/6E5Kjqc4&#34;
电子邮件视图
现在在resources / views / emails / password.blade.php上创建一个名为password.blade.php的新文件。
将其粘贴到其中。
Click here to reset your password: {{ url('password/reset/'.$token) }}
发布重置重定向
如果您想将用户重定向到特定网址。您可以将此代码粘贴到Passwordcontroller.php。替换&#34;仪表板&#34;使用您需要重定向到的链接。
protected $redirectTo = '/dashboard';
多数民众赞成:)