johnpbloch/verily

此包最新版本(0.1.0)没有可用的许可信息。

MicroMVC 的身份验证模块

0.1.0 2013-12-10 15:22 UTC

This package is auto-updated.

Last update: 2024-09-10 07:34:53 UTC


README

Verily 是 David Pennington 开发的 MicroMVC PHP 框架的一个身份验证模块。它处理身份验证的所有方面:登录表单、检查用户凭据和验证用户身份验证 cookie 的真实性。

默认情况下,Verily 使用安全的 PHP 哈希来存储密码并进行身份验证。

使用方法

要使用 Verily,使用 \Verily\Verily 类。要获取登录表单

$form = \Verily\Verily::form();

这将返回一个视图对象,您可以在代码中使用该对象。

要处理登录表单提交

$form = \Verily\Verily::log_in();

这将尝试使用 POST 值进行用户身份验证。如果成功,页面将被重定向(由 $_GET['redirect_to'] 确定)并停止执行。如果身份验证失败,将返回带有验证错误的登录表单。

要登出用户

$logOutMessage = \Verily\Verily::log_out();

这将返回一个简短的确认消息,表明用户已登出。

要检查是否已登录用户

if( \Verily\Verily::is_logged_in() ) { /* Do something */ }

要获取当前登录用户

$user = \Verily\Verily::current_user();

如果有用户登录,这将返回用户模型类型的对象,如果没有用户登录,则返回 false

要哈希密码(例如,在创建新用户时)

$passwordHash = \Verily\Verily::hash_password();

安装

要安装 Verily,将其添加到 composer.json 文件中的依赖项,并运行安装脚本

composer require johnpbloch/verily:~0.1
php vendor/bin/install.php

安装脚本将提示您输入几个配置选项。大多数选项都有默认值,许多用户可能不需要更改。配置细节如下

hasher                 Default Value: \Verily\Lib\PasswordHash

用于哈希密码并与用户提交的密码进行比较的类。该类必须存在,应该是完全限定的,并且必须实现 \Verily\Lib\PasswordHasher 接口。

hasher_iterations      Default Value: 8

哈希密码时要使用的迭代次数。必须大于 3 且小于 32

use_portable_hashes    Default Value: yes

是否使用可移植哈希。由于 PHP 环境中的变化,使用可移植哈希是默认设置。如果您的 PHP 环境有 Blowfish 加密可用,则建议关闭此选项(false)。

form_view              Default Value: Form

这是用于显示登录表单的 View 文件。该值不应包含 .php 扩展名;它应该是相对于 MicroMVC 安装根目录的相对路径,相对于 Verily/Views(默认值),或相对于默认视图文件夹 Views

form_class             Default Value: \Micro\Form

这是用于创建登录表单字段的类。默认情况下,使用核心表单类(\Micro\Form),但也可以使用扩展 \Micro\Form 的任何类。

validation_class       Default Value: \Micro\Validation

这是用于验证登录表单字段的类。默认情况下,使用核心验证类(\Micro\Validation),但也可以使用扩展 \Micro\Validation 的任何类。

user_model             No Default

这是用于身份验证的 Model。没有默认值,因此必须提供值。模型类必须存在,并且必须扩展 \Micro\ORM。这对于 Verily 能够查找尝试登录的用户是必要的。

username_property      Default Value: username

这是Verily将用于从上述定义的模型类型对象中获取用户名的属性。Verily需要能够根据此值在数据库中查找用户,因此它应该对应于与用户模型关联的数据库表的唯一索引列。

password_property      Default Value: password

这是Verily将用于从上述定义的模型类型对象中获取存储的密码散列的属性。它应该对应于与用户模型关联的数据库表的列。

auth_salt              No Default

如果您不提供盐值,安装脚本将为您生成一个随机的盐值。此盐有两个用途:首先,它使认证cookie更安全;其次,可以更改它,迫使所有账户注销而不需要更改密码。

许可证

Verily许可使用GNU GPL版本3或更高版本GNU GPL版本3