/eloquent-password-manager

此包已被弃用,不再维护。作者建议使用 helium/laravel-helpers 包。

一个简单的 Eloquent 模型特性,用于管理常见的密码功能

1.0.21 2020-08-12 17:07 UTC

This package is auto-updated.

Last update: 2020-10-02 15:03:15 UTC


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 模型来搜索电子邮件地址。