DEV Community

Em leons
Em leons

Posted on • Edited on

How to Authenticate Users Codeigniter Shield

Authentication is the keystone of any secure web application. In the world of PHP frameworks, CodeIgniter 4 has gained significant traction due to its lightweight and powerful features. Recently, CodeIgniter introduced Shield, a useful built authentication library that makes securing your application easier than ever. In this article, we'll explore how to set up user authentication using CodeIgniter 4 Shield, step by step.

What is CodeIgniter 4 Shield?

CodeIgniter 4 Shield is an authentication and authorization library specifically designed for CodeIgniter 4. It provides a comprehensive set of features that simplify the process of securing your web application. With Shield, you can implement user registration, login, password management, roles, permissions, and much more.

Getting Started:

Before diving into the code, let's ensure your development environment is set up correctly. You'll need a working CodeIgniter 4 installation. If you haven't already installed CodeIgniter 4, you can do so via Composer:

composer create-project codeigniter4/appstarter userAuth
Enter fullscreen mode Exit fullscreen mode

Once your CodeIgniter 4 application is set up, you'll need to install the Shield package:

cd userAuth
cp env .env
nano .env //setup database
Enter fullscreen mode Exit fullscreen mode

To install CI shield Run the following command:

composer require codeigniter4/shield
Enter fullscreen mode Exit fullscreen mode

You can read more from the documentation here

After installing Shield, you'll need to set it up the configuration files and database migrations to customize settings accordingly Run the following command:

php spark shield:setup
Enter fullscreen mode Exit fullscreen mode

Follow the command line steps to complete setup. Once shield setup completes it will generate necessary files,database tables and configurations ready for you to go.

if setup completed successfully to start a development serve Run the following command:

php spark serve
Enter fullscreen mode Exit fullscreen mode

Now open you web browser visit you project always runs on port 8080

For login page open
http://localhost:8080/login

For registration page open
http://localhost:8080/register

Create a filter

php spark make:filter AuthFilter
Enter fullscreen mode Exit fullscreen mode

inside AuthFilter.php

public function before(RequestInterface $request, $arguments = null)
    {
        if (auth()->loggedIn()) {
            $user = auth()->user();
            // Do something.
        }else{
            return redirect()->to('/login');
        }
    }
Enter fullscreen mode Exit fullscreen mode

You can read more from the documentation here

Top comments (0)