alecgunnar/modelauth

dev-master 2016-05-13 11:07 UTC

This package is not auto-updated.

Last update: 2024-09-20 22:07:53 UTC


README

这是一个简单的库,只为您的应用程序提供最基本的认证功能。

用法

让我们考察一个示例场景,其中我们有一个名为 User 的模型,我们需要将密码与该模型的对象进行比较。

首先,我们将列出我们将使用的类,并定义一个用于测试的密码。

<?php

use AlecGunnar\ModelAuth\AuthenticatableInterface;
use AlecGunnar\ModelAuth\HashScheme\BcryptHashScheme;
use AlecGunnar\ModelAuth\Authenticator;

$password = 'superSecret123';

以下是示例 User 模型。

// ...

class User implements AuthenticatableInterface {
    private $hash;    

    public function setPasswordHash ($passwdHash) {
        $this->hash = $passwdHash;
    }

    public function getPasswordHash () {
        return $hash;
    }
}

接下来,我们将创建一个哈希方案的实例,特别是 BCrypt 哈希方案。使用它,我们将生成我们之前定义的密码的哈希。

// ...

$hashScheme = new BcryptHashScheme();
$hashedPassword = $hashScheme->generateHash($password);

我们现在需要创建一个用于认证的用户,并将我们之前生成的密码哈希分配给这个用户。

// ...

$user = new User();
$user->setPasswordHash($hashedPassword);

现在,我们可以使用我们在开始时定义的密码实际认证我们刚刚创建的用户。这是一个简单的示例,很明显,这个结果将输出 这是一个有效的密码!

// ...

$auth = new Authenticator($hashScheme);

if ($auth->authenticate($user, $password)) {
    echo 'It is a valid password!';
} else {
    echo 'Not a valid password...';
}