steevedroz/ci4-auth

帮助轻松设置身份验证

v0.2.1 2020-11-19 08:50 UTC

This package is auto-updated.

Last update: 2024-09-19 15:48:06 UTC


README

Pipeline Coverage

当使用CodeIgniter 4时,您有时需要验证用户。这个库允许您非常容易地

  • 如果用户的凭据符合您的模型要求,则登录用户
  • 检查用户是否已登录
  • 获取已登录的用户
  • 获取已登录用户的属性
  • 登出用户

它可以在控制器中使用,也可以在视图、模型中,甚至库或帮助程序中使用。

设置

要安装ci4-auth,只需在CodeIgniter 4根存储库中运行 composer require steevedroz/ci4-auth 即可。

为了正确使用它,请按照以下步骤操作

  1. 创建一个 UserModel (您可以命名为任何名称)并使其实现 SteeveDroz\CiAuth\UserModelInterface
  2. 添加一个具有签名 login(array $user): ?array 的公共方法。该方法应接受一个包含凭据(如用户名和密码)的 array,并返回相应的完整用户,或者如果凭据不匹配,则返回 null
  3. 可选地,在 app\Config\Services.php 中创建一个名为 auth 的服务,按照官方网站上的说明进行。请注意,为了调用构造函数,您必须传递您的用户模型作为参数(见下文)。
  4. 如果使用解析器渲染视图,您可以创建一个插件,其中 'getUser' => 'SteeveDroz\CiAuth\Auth::getUserStatic'。如果使用此功能,则不再需要创建服务,因为 getUserStatic 使用 auth 服务。

使用方法

设置完成后,您可以通过 service('auth') 访问身份验证库,如果您设置了服务,或者通过调用 new \SteeveDroz\CiAuth\Auth(new UserModel())UserModel 是您在模型中创建的。

如果您想保留原始用户并保持会话不变,而不是在每次页面上更新它,则将构造函数的第二个参数添加为 false

一旦您有一个包含 Auth 实例的变量(或服务),您可以使用以下方法。

类参考

SteeveDroz\CiAuth\Auth

__construct($model, $refresh = true)

参数
  • $model (SteeveDroz\CiAuth\UserModelInterface) 将检查凭据的模型
  • $refresh (bool) 如果用户在每次页面上更新

创建身份验证库的实例。

login($user)

参数
  • $user (array) 包含需要检查的凭据的用户

使用模型检查凭据。如果它们正确,则在会话中将 array 保存为 user 键。

返回类型

void

logout()

从会话中删除已登录的用户。

返回类型

void

isLoggedIn()

检查用户是否当前已登录。

返回

true 如果在会话中找到用户,否则 false

返回类型

bool

getUser([$field])

参数
  • $field (string) 想从会话中存储的用户获取的字段

如果没有提供参数,则获取会话中的用户并返回它。如果提供了参数,则只返回会话中用户的相应属性;例如,$auth->getUser('firstName') 返回 $user['firstName']

返回

用户作为 array、其属性之一,或 null(如果没有任何匹配项)。

返回类型

mixed

getUserStatic([$field])

参数
  • $field (数组) 一个数组,第一个元素是要从会话中检索的用户字段

如果没有提供参数,则获取会话中的用户并返回它。如果提供了参数,则仅返回会话中用户的相应属性;例如,Auth::getUserStatic(['firstName']) 返回 $user['firstName']

此静态方法旨在与解析器插件一起使用。例如,如果按照上面的例子创建了 getUser 插件,它可以这样使用:{+getUser email+}。该插件通过传递所有关键字作为数组来调用该方法,因此参数类型为数组。

返回

用户作为 array、其属性之一,或 null(如果没有任何匹配项)。

返回类型

mixed