A wp-kit component that handles authentication

2.0.2 2020-01-31 23:43 UTC

This package is not auto-updated.

Last update: 2024-05-04 19:28:24 UTC


This is a wp-kit component that handles authentication.

wp-kit/auth was built to work with Themosis as currently there are no authentication middlewares built into Themosis however with illuminate/routing built into Themosis, we are able to run Middleware on Routes and Route Groups.

wp-kit/auth achives compatibility with illuminate/auth by providing a UserProvider that integrates directly with WordPress to authenticate users.

wp-kit/auth comes aliased with four types of Middleware:

wp-kit/auth comes with a AuthenticatesUsers Trait just like wp-kit/foundation so you can use this trait inside Controllers so you can use traditional form authentication just like in Laravel.


Install via Composer in the root of your Themosis installation:

composer require "wp-kit/auth"


Add Service Provider(s)

Just register the service provider and facade in the providers config and theme config:

//inside theme/resources/config/providers.config.php

return [

Add Config File

Note: This will be changing to a traditional config file similar to that found in Laravel once the UserProvider Guard has been built

The recommended method of installing config files for wp-kit components is via wp kit vendor:publish command.

First, install WP CLI, and then install this component, wp kit vendor:publish will automatically be installed with wp-kit/utils, once installed you can run:

wp kit vendor:publish

For more information, please visit wp-kit/utils.

Alternatively, you can place the config file(s) in your theme/resources/config directory manually.

Allowing Headers

If using BasicAuth middleware, make sure you add the following line to your .htaccess file to allow Authorization headers:

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]


You can activate Middleware on the route group or route itself:

Middleware on Group

// inside themosis-theme/resources/providers/RoutingService.php

namespace Theme\Providers;

use Themosis\Facades\Route;
use Themosis\Foundation\ServiceProvider;

class RoutingService extends ServiceProvider
     * Define theme routes namespace.
    public function register()
	        'middleware' => [
            	'namespace' => 'Theme\Controllers'
        ], function () {
        	require themosis_path('theme.resources').'routes.php';

Middleware on Route

// inside themosis-theme/resources/routes.php

Route::get('home', function(Input $request)
    return view('welcome');

Using Traits in Controllers

The AuthenticatesUsers trait handles everything for logging the user in using a custom form.

namespace Theme\Controllers;

use Themosis\Route\BaseController;
use WPKit\Auth\Traits\AuthenticatesUsers;
use WPKit\Auth\Traits\ValidatesRequests;

class LoginController extends Controller
    | Login Controller
    | This controller handles authenticating users for the application and
    | redirecting them to your home screen. The controller uses a trait
    | to conveniently provide its functionality to your applications.
    use AuthenticatesUsers, ValidatesRequests;
     * Where to redirect users after login.
     * @var string
    protected $redirectTo = '/';
     * Create a new controller instance.
     * @return void
    public function __construct()

Make sure you add routes:

// an example in routes.php

Route::get('account', 'Example@showLoginForm');
Route::post('account', 'Example@login');
Route::get('logout', 'Example@logout');

Make sure you add a login form view:

<-- Inside resources/view/auth/login.php -->
<?php foreach( $errors as $field => $error ) : ?>
	<strong>There was an error with field: <?php echo $field; ?></strong>
<?php endforeach; ?>
<form method="post">
		<input type="text" name="email" placeholder="Username" />
		<input type="password" name="password" placeholder="Password" />
		<input type="submit" value="Submit" />


Please install and study the default config file as described above to learn how to use this component.

Get Involved

To learn more about how to use wp-kit check out the docs:

View the Docs

Any help is appreciated. The project is open-source and we encourage you to participate. You can contribute to the project in multiple ways by:

  • Reporting a bug issue
  • Suggesting features
  • Sending a pull request with code fix or feature
  • Following the project on GitHub
  • Sharing the project around your community

For details about contributing to the framework, please check the contribution guide.


Wordpress 4+

PHP 5.6+


wp-kit/auth is open-sourced software licensed under the MIT License.