氦 / eloquent-password-manager
1.0.21
2020-08-12 17:07 UTC
Requires
- illuminate/database: >=5.8
- illuminate/support: >=5.8
- illuminate/validation: >=5.8
- ramsey/uuid: >=3.9
README
大多数 Laravel 和 Lumen 应用都包含一些标准的逻辑,用于存储、检查和更新用户的密码。此包旨在从您的项目中移除这些模板代码,并将其作为单独的模块。
安装
composer require helium/eloquent-password-manager
基本用法
在您的 User
模型类中,实现接口 PasswordNotifiable
并添加特性 ManagesPasswords
。您还必须实现接口函数 sendPasswordResetNotification(string $token)
。另一个接口函数 updatePassword(string $password, string $password_confirm)
在 ManagesPasswords
特性中实现。
class User extends AuthModel implements PasswordNotifiable
{
use ManagesPasswords;
public function sendPasswordResetNotification(string $token)
{
...
}
...
}
多认证用户
您还可以在允许单个用户使用多个电子邮件地址登录的更复杂的应用程序中使用此特性。
class User extends AuthModel
{
use ManagesPasswords;
public static function notifiableModel()
{
return UserEmail::class;
}
}
class UserEmail extends Model implements PasswordNotifiable
{
public $email;
public function user()
{
return $this->belongsTo(User::class);
}
public function updatePassword(string $password, string $password_confirm)
{
$this->user->updatePassword($password, $password_confirm);
}
public function sendResetPasswordNotification(string $token)
{
...
}
}
现在,当重置用户的密码时,ManagesPassword
将使用 UserEmail
模型而不是 User
模型来搜索电子邮件地址。