适用于 CodeIgniter 4 的身份验证

v1.0.2 2024-06-19 08:58 UTC

This package is auto-updated.

Last update: 2024-09-19 09:26:13 UTC


README

Shield 是 CodeIgniter 4 的官方身份验证和授权框架。虽然它确实提供了一组在网站中常用的基本工具,但它旨在具有灵活性和易于定制。

Shield 的主要目标是

  1. 它必须非常灵活,允许开发者扩展/覆盖其几乎所有部分。
  2. 它必须在核心处具备安全性。毕竟,它是一个身份验证库。
  3. 直接提供许多身份验证需求,同时简单添加额外的功能。

身份验证方法

Shield 默认提供两种主要方法:基于 会话访问令牌 的身份验证。

它还提供了 HMAC SHA256 令牌JSON Web 令牌 身份验证。

基于会话

这是您在各个地方都能看到的典型电话/用户名/密码系统。它包括安全的“记住我”功能。这可以用于标准 Web 应用程序,以及单页应用程序。包括所有标准功能的完整控制器和基本视图,如注册、登录、忘记密码等。

访问令牌

这些与 GitHub 使用的访问令牌非常相似,它们对单个用户是唯一的,单个用户可以有多个。这可以用于第三方用户的 API 身份验证,甚至可以用于允许您构建的移动应用程序的访问。

HMAC SHA256 令牌

这是对访问令牌身份验证的略微复杂改进。HMAC 的主要优势是共享密钥不是传递在请求中,而是用于创建请求体的哈希签名。

JSON Web 令牌

JWT 或 JSON Web 令牌是一种紧凑且自包含的方式,用于作为 JSON 对象在各方之间安全地传输信息。它通常用于 Web 应用程序中的身份验证和授权目的。

重要特性

  • 基于会话的身份验证(传统的 ID/密码与“记住我”)
  • 使用个人访问令牌的无状态身份验证
  • 在账户注册时可选的手机验证
  • 登录后可选的基于短信的双因素身份验证
  • 当用户忘记密码时使用魔法链接登录
  • 基于灵活组的访问控制(类似于角色,但更灵活)
  • 用户可以授予额外的权限

有关更多信息,请参阅官方身份验证库

入门

先决条件

使用 Shield 需要以下条件

安装

安装通过 Composer 完成。

composer require ruhafzazahedi/shield