codeigniter4-authentication icon indicating copy to clipboard operation
codeigniter4-authentication copied to clipboard

The codeigniter4\authentication component provides an API for authentication and includes concrete authentication adapters for common use case scenarios.

CodeIgniter4 Authentication

tests Latest Stable Version Total Downloads Latest Unstable Version License

About

The codeigniter4\authentication component provides an API for authentication and includes concrete authentication adapters for common use case scenarios.

  • Inspired from https://github.com/lonnieezell/codigniter-shield
  • Most inspired from auth by laravel https://github.com/illuminate/auth

Upgrade from v1.x to 2.x

Composer Dependencies

You should update the following dependencies in your application's composer.json file:

agungsugiarto/codeigniter4-authentication to ^2.0

User Entity

Open class App\Entities\User add interface and trait to implement.

namespace Fluent\Auth\Entities;

- use CodeIgniter\Entity;
+ use CodeIgniter\Entity\Entity;
use Fluent\Auth\Contracts\AuthenticatorInterface;
+ use Fluent\Auth\Contracts\AuthorizableInterface;
use Fluent\Auth\Contracts\HasAccessTokensInterface;
use Fluent\Auth\Contracts\ResetPasswordInterface;
use Fluent\Auth\Contracts\VerifyEmailInterface;
use Fluent\Auth\Facades\Hash;
use Fluent\Auth\Traits\AuthenticatableTrait;
use Fluent\Auth\Traits\AuthorizableTrait;
use Fluent\Auth\Traits\CanResetPasswordTrait;
use Fluent\Auth\Traits\HasAccessTokensTrait;
use Fluent\Auth\Traits\MustVerifyEmailTrait;

class User extends Entity implements
    AuthenticatorInterface,
+   AuthorizableInterface,
    HasAccessTokensInterface,
    ResetPasswordInterface,
    VerifyEmailInterface
{
    use AuthenticatableTrait;
+   use AuthorizableTrait;
    use CanResetPasswordTrait;
    use HasAccessTokensTrait;
    use MustVerifyEmailTrait;
}

AuthServiceProvider

Open App\Providers\AuthServiceProvider

namespace Fluent\Auth;

+ use Fluent\Auth\Facades\Gate;
use Fluent\Auth\AbstractServiceProvider;

class AuthServiceProvider extends AbstractServiceProvider
{
+   /**
+    * The policy mappings for the application.
+    *
+    * @var array<class-string, class-string>
+    */
+   protected static $policies = [];

    /**
     * {@inheritdoc}
     */
    public static function register()
    {
+        static::registerPolicies();
    }
}

Documentation

  • Authentication
  • Authorization

Community Authentication Guards

Authentication Demo

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Contributions are very welcome.

License

Released under the MIT License, see LICENSE.