johnpbloch / verily
MicroMVC 的身份验证模块
Requires (Dev)
- micromvc/micromvc: dev-master
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。