faqzul/codeigniter-fauthz-library

0.1.0 2020-06-01 13:27 UTC

This package is auto-updated.

Last update: 2024-09-15 17:34:11 UTC


README

Build Status

PHP框架CodeIgniter的认证库。它基于Tank Auth,尽管代码经过了重大修改。

先决条件

功能

简单易用

安全性高

  • 使用 phpass 库进行密码散列(而不是不安全的 md5)。
  • 计数登录尝试以防止暴力破解(可选)。失败的登录尝试由 IP 地址和用户名确定。
  • 记录最后登录的 IP 地址和时间(可选)。
  • 注册和重复登录尝试的 CAPTCHA(可选)。
  • 未激活的账户和忘记密码请求将自动过期。

易于管理

  • 严格的 MVC 模型:用于控制的 控制器,用于表示的 视图 和作为模型接口的库。
  • 支持语言文件。
  • 视图文件只包含必要的 HTML 代码,没有冗余的装饰。
  • 大多数功能都是可选的,可以在文档良好的配置文件中打开或关闭。

功能齐全

  • 可以使用用户名、电子邮件地址或两者(根据配置设置)登录。
  • 注册可以是即时或通过电子邮件激活(可选)。
  • “记住我”选项。
  • 忘记密码(在重新激活后让用户选择新密码)。
  • 更改已注册用户的电子邮件或密码。
  • 即使在账户激活之前,也可以更改电子邮件或密码。
  • 禁止用户(可选)。
  • 用户资料(可选)。
  • CAPTCHA 支持。
  • HTML 或纯文本电子邮件。

入门

Composer

faqzul@Trisquel:/var/www/CodeIgniter$ composer require faqzul/codeigniter-fauthz-library

手册

  1. 下载库的最新版本。
  2. 将包解压缩到 application/third_party/。
  3. 下载CodeIgniter-CRUD-Model的最新版本。
  4. 将包解压缩到 application/third_party/。

然后,将数据库模式安装到您的 MariaDB 数据库中。

配置

Composer

将 application/config/autoload.php 文件中的以下行更改为您控制器类使用。

$autoload['packages'] = array();
↓
$autoload['packages'] = array(FCPATH . 'vendor/faqzul/codeigniter-fauthz-library/');

设置 FauthZ 偏好

$this->load->library('fauthz');
$this->fauthz->config_set('website_mail', 'web@domain.com');
$this->fauthz->config_set('website_name', 'CodeIgniter Authentication');
$this->fauthz->config_set('captcha_registration', TRUE);

更多偏好设置请参阅 config/fauthz.php

手册

  • 将 application/config/autoload.php 文件中的以下行更改为您控制器类使用。
$autoload['packages'] = array();
↓
$autoload['packages'] = array(APPPATH . 'third_party/codeigniter-fauthz-library/');
  • 将 application/third_party/codeigniter-fauthz-library/config/fauthz.php 文件中的以下行更改。
$config['crud_path'] = FCPATH . 'vendor/faqzul/codeigniter-crud-model/';
↓
$config['crud_path'] = APPPATH . 'third_party/codeigniter-crud-model/';

用法

注册

在网站上注册用户。如果注册成功,将创建一个新的用户账户。如果配置文件中的 email_activation 标志设置为 TRUE,则此账户需要通过点击通过电子邮件发送的特殊链接进行激活;否则,它已经激活。请注意:注册后,用户仍然未认证;需要登录。

登录

在网站上登录用户。如果登录成功且用户账户已激活,用户将被重定向到主页。如果账户未激活,则调用 send_again(见下文)。在登录失败的情况下,用户将留在同一页面上。

登出

使用户登出。

send_again

再次发送激活电子邮件,到相同的或新的电子邮件地址。每次非激活用户登录网站时都会调用此方法。当用户因邮箱问题或电子邮件地址误印而没有收到注册时发送的激活邮件时,这可能很有用。用户可以更改他们的电子邮件或保持不变。

activate

激活用户账户。通常此方法是通过点击激活电子邮件中的链接来调用的。点击 forgot password 电子邮件中的链接也会激活账户。用户通过用户 ID 和 URL 中的认证代码进行验证。

forgot_password

生成特殊的重置代码(用于更改密码)并将其发送给用户。显然,此方法可以在用户忘记他们的密码时使用。

reset_password

用新的密码(由用户设置)替换用户密码(忘记的)。然后可以通过点击邮件中的链接调用此方法。用户通过用户 ID 和 URL 中的认证代码进行验证。

change_password

“正常”的密码更改(与重置忘记的密码相比)。只能在用户登录并激活时调用。为了更高的安全性,需要用户的老密码。

change_email

更改用户的电子邮件。只能在用户登录并激活时调用。为了更高的安全性,需要用户密码。新电子邮件将不会生效,直到通过点击发送到该电子邮件地址的邮件中的链接进行激活。

reset_email

激活新的电子邮件地址,并用新的电子邮件地址替换用户电子邮件。可以通过点击邮件中的链接调用此方法。用户通过用户 ID 和 URL 中的认证代码进行验证。

unregister

删除用户账户。只能在用户登录并激活时调用。为了更高的安全性,需要用户密码。

版本控制

我们使用 SemVer 进行版本控制。有关可用版本,请参阅此存储库的 标签

作者

  • Muhammad Faqih Zulfikar - 开发者

许可证

本项目受 MIT 许可证许可 - 有关详细信息,请参阅 LICENSE 文件。