PackageTrack
Sign in Get early access

codeigniter4/shield

Authentication and Authorization for CodeIgniter 4

v1.4.1 498K downloads/mo #3888 most downloaded on Packagist codeigniter4/shield

What this package is like to depend on

Last release 5 days ago

18 Aug 2026

Release timing varies

gaps range from 4 weeks to 13 months

Nearly every release is documented

notes for 9 of 9 stable releases

Nothing withdrawn

no release was ever pulled

4 years old

17 releases · first in 2022

3 releases in the last 12 months

see the full history below

Release timeline

17 releases · Jun 2022 to Aug 2026
2023 2024 2025 2026
Release Pre-release

Releases

latest 17
  1. v1.4.1 18 Aug 2026
    Release notes

    What's Changed

    Fixed Bugs

    Full Changelog: v1.4.0...v1.4.1

    Open source →
  2. v1.4.0 23 Jul 2026
    Release notes

    What's Changed

    Fixed Bugs

    New Features

    Enhancements

    • feat: add only option for authentication routes configuration by @dimtrovich in #1323
    • feat: support hierarchical permission wildcards by @memleakd in #1327

    New Contributors

    Full Changelog: v1.3.0...v1.4.0

    Open source →
  3. v1.3.0 16 Mar 2026
    Release notes

    ⚠️ Upgrade Notes

    JWT: Minimum Key Length Now Enforced

    If you are using the JWT authenticator with an HMAC algorithm (HS256, HS384, HS512), note that the underlying firebase/php-jwt library was upgraded to v7, which now enforces minimum key lengths at runtime. If your secret is too short, every JWT encode and decode call will throw: LogicException: Cannot encode/decode JWT: Provided key is too short.

    How to fix it? Generate a new key:

    php -r 'echo base64_encode(random_bytes(32));' # HS256
    php -r 'echo base64_encode(random_bytes(48));' # HS384
    php -r 'echo base64_encode(random_bytes(64));' # HS512

    Then update your configuration:

    // app/Config/AuthJWT.php
    'secret' => '<output of the command above>',

    Warning

    Existing tokens signed with the old (short) secret will become invalid after updating.
    Users will need to re-authenticate to obtain new tokens.

    What's Changed

    Fixed Bugs

    • fix: withPermissions() for users without permissions by @michalsn in #1290
    • fix: check for empty actionClass so that actions can be disabled via .env params by @najdanovicivan in #1286

    Enhancements

    • PHP 8.5 compatibility
    • feat: ignore robots when accessing magic link by @michalsn in #1294
    • feat: add bot detection for ActionController by @michalsn in #1295
    • feat: withIdentities/withGroups/withPermissions now work with first() by @michalsn in #1315

    Translations

    • lang: [sk] update Slovak translations for invalid email and token by @jozefrebjak in #1279
    • lang: [it] Added the remaining translations for the Italian language by @Franky5831 in #1282

    New Contributors

    Full Changelog: v1.2.0...v1.3.0

    Open source →
  4. v1.2.0 14 Jul 2025
    Release notes

    What's Changed

    Fixed Bugs

    • fix: escape string to prevent XSS attack by @warcooft in #1148
    • fix: add missing args to lang('Auth.invalidEmail') by @kenjis in #1159
    • fix: chain filter does not update last_active by @kenjis in #1160
    • fix: Shield ignores AuthToken::$authenticatorHeader config by @alxjzx100 in #1169
    • fix: cannot override emailer() function by @FrancoisChaumont in #1174
    • fix: shield:user create does not assign a default group by @kenjis in #1162
    • fix: add missing validation for group name to shield:user addgroup/removegroup by @kenjis in #1176
    • fix: confusing lang message invalidEmail by @kenjis in #1175
    • fix: CSP error in debugbar by @emaceda in #1242

    Enhancements

    • feat: Updated email templates with user information by @pmagictech in #1125
    • feat: [Magic Link Login] add placeholder to invalidEmail to return user email. by @warcooft in #1145
    • feat: add -g option to shield:user create by @kenjis in #1164
    • feat: add UserModel::createNewUser() and RegisterController uses it by @kenjis in #1196
    • feat: Add expiration date to access token & hmac keys by @CosDiabos in #1219
    • feat: Add user relations loading methods for groups and permissions by @michalsn in #1257

    Translations

    New Contributors

    Full Changelog: v1.1.0...v1.2.0

    Open source →
  5. v1.1.0 13 Jun 2024
    Release notes

    What's Changed

    Fixed Bugs

    • fix: setup command cannot update Config\Autoload::$helpers with multiple lines by @kenjis in #1110
    • fix: change hardcoded user entity with declared return type by @MrFrost-Nv27 in #1105

    Enhancements

    • feat: Change session manipulation methods from private to protected by @michalsn in #1113

    Translations

    • lang: [de] Added missing translations in Auth.php by @sba in #1106
    • lang: [pl] add Polish translation by @mieszkou in #1117

    New Contributors

    Full Changelog: v1.0.3...v1.1.0

    Open source →
  6. v1.0.3 14 Apr 2024
    Release notes

    What's Changed

    Fixed Bugs

    • fix: Can't create new users via CLI if username is disabled by @kenjis in #1078
    • fix: Call to a member function getErrors() on null in CheckQueryReturnTrait by @kenjis in #1088
    • fix: passing Time to Query Builder in UserModel by @kenjis in #1095

    Refactoring

    Full Changelog: v1.0.2...v1.0.3

    Open source →
  7. v1.0.2 17 Mar 2024
    Release notes

    What's Changed

    Fixed Bugs

    Translations

    Refactoring

    New Contributors

    Full Changelog: v1.0.1...v1.0.2

    Open source →
  8. v1.0.1 15 Feb 2024
    Release notes

    What's Changed

    Fixed Bugs

    • fix: Shield may not send correct HTML mail by @kenjis in #1020

    Translations

    New Contributors

    Full Changelog: v1.0.0...v1.0.1

    Open source →
  9. v1.0.0 27 Dec 2023
    Release notes

    Important!

    What's Changed

    Breaking Changes

    • refactor: remove supportOldDangerousPassword by @kenjis in #976

    Enhancements

    Translations

    • lang: [bg] Adjust translations for bg/Auth.php by @kpeu3u in #973

    Refactoring

    • refactor: remove unneeded deleted_at in $allowedFields by @kenjis in #963

    Full Changelog: v1.0.0-beta.8...v1.0.0

    Open source →
  10. v1.0.0-beta.8 22 Nov 2023 pre-release
    Release notes

    Important!

    What's Changed

    SECURITY

    Breaking Changes

    Fixed Bugs

    Translations

    Refactoring

    • [Rector] Apply StringifyStrNeedlesRector by @samsonasik in #891
    • refactor: replace /> with > for input tags by @kenjis in #894
    • test: update Config\Registrar by @kenjis in #901
    • refactor: update default value $hashCost to 12 by @datamweb in #916
    • test: refactor SessionFilterTest by rector 0.18.6 by @datamweb in #927

    New Contributors

    Full Changelog: v1.0.0-beta.7...v1.0.0-beta.8

    Open source →
  11. v1.0.0-beta.7 09 Oct 2023 pre-release

    Nothing published for this version

  12. v1.0.0-beta.6 26 Apr 2023 pre-release

    Nothing published for this version

  13. v1.0.0-beta.5 18 Mar 2023 pre-release

    Nothing published for this version

  14. v1.0.0-beta.4 11 Mar 2023 pre-release

    Nothing published for this version

  15. v1.0.0-beta.3 30 Oct 2022 pre-release

    Nothing published for this version

  16. v1.0.0-beta.2 07 Aug 2022 pre-release

    Nothing published for this version

  17. v1.0.0-beta 03 Jun 2022 pre-release

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive