alikhaleghi / basesys
Khaleghi项目的基系统。
Requires
- php: ^7.4 || ^8.0
- codeigniter4/settings: ^2.1
- firebase/php-jwt: ^6.3
- morilog/jalali: ^3
- myth/auth: ^1.2
Requires (Dev)
- codeigniter4/codeigniter4-standard: ^1.0
- codeigniter4/devkit: ^1.0
- codeigniter4/framework: ^4.1
- mockery/mockery: ^1.0
- myth/auth: ^1.1
Provides
This package is auto-updated.
Last update: 2024-09-13 01:07:51 UTC
README
为CodeIgniter 4提供灵活、强大、安全的API包。
项目通知
该程序应在CI4.2+上运行。
需求
- PHP 8.1+
- CodeIgniter 4.2+
功能
认证/授权
-
登录/注册/账户恢复
-
用户面板 -- 仪表板 -- 用户资料 --- 账户详情修改 --- 密码修改 --- 联系信息修改
-
管理员面板 -- 仪表板 -- 用户管理 --- 用户修改 --- 用户组管理 ---- 添加/删除用户组
安装
最佳安装方式是通过Composer。假设Composer已全局安装,您可以使用以下命令
> composer require AliKhaleghi/BaseSys
这将添加最新稳定版本的AliKhaleghi/BaseSys作为模块到您的项目中。
确保您的数据库设置正确,然后运行Auth迁移
> php spark migrate -all
手动操作
您需要添加一些额外的配置才能使程序运行。打开或创建文件/app/config/Auth.php
。在这里,我们需要将JSON Web Token库添加到Myth/Auth认证配置中。找到变量$authenticationLibs
并添加以下元素到数组中。'jwt' => 'AliKhaleghi\BaseSys\Authentication\JWTAuthenticator', // JSON Web Token认证器类
/** * -------------------------------------------------------------------- * 库 * -------------------------------------------------------------------- * * @var array */ public $authenticationLibs = [ 'local' => 'Myth\Auth\Authentication\LocalAuthenticator', 'jwt' => 'AliKhaleghi\BaseSys\Authentication\JWTAuthenticator', // JSON Web Token认证器类 ];
过滤器
请注意,为了保持API端点的安全性,您需要在App\Config\Filters.php
中实现以下代码
public array $filters = [ 'jwt_logged_in' => ['before' => ['api/client/*']], 'jwt_admin' => ['before' => ['api/client/*']], ];
注册要求
为了在允许新用户登录之前进行任何形式的激活,您需要更新您的App\Config\Auth.php
配置如下
/** * -------------------------------------------------------------------- * Require Confirmation Registration via Email * -------------------------------------------------------------------- * * When enabled, every registered user will receive an email message * with an activation link to confirm the account. * * Validation Via Email: AliKhaleghi\BaseSys\Authentication\Activators\EmailActivator * Validation Via SMS: AliKhaleghi\BaseSys\Authentication\Activators\SMSActivator * * @var string|null Name of the ActivatorInterface class */ public $requireActivation = 'AliKhaleghi\BaseSys\Authentication\Activators\EmailActivator';
如果上述值尚未设置,则需要激活才能注册,默认使用EmailActivator
。