wp-kit / auth
A wp-kit component that handles authentication
Installs: 7 441
Dependents: 0
Suggesters: 0
Security: 0
Stars: 6
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/wp-kit/auth
Requires
- php: >=7.2
- illuminate/auth: ^6.0
- illuminate/cache: ^6.0
- illuminate/cookie: ^6.0
- illuminate/validation: ^6.0
- wp-kit/config: 2.*
- wp-kit/hashing: 2.*
- wp-kit/kernel: 1.*
- wp-kit/utils: 2.*
- wp-kit/wp-login-auth: 1.*
This package is not auto-updated.
Last update: 2025-10-19 02:41:17 UTC
README
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:
- Authentication (Illuminate): auth
- Basic Authentication (Illuminate): auth.basic
- Start Session (Illuminate): start_session
- Guest Redirection (WP Kit): guest
- WP Login Authentication (WP Kit): auth.wp_login
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.
Installation
Install via Composer in the root of your Themosis installation:
composer require "wp-kit/auth"
Setup
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 [ // WPKit\Auth\AuthServiceProvider::class // ];
Add Config File
Note: This will be changing to a traditional config file similar to that found in Laravel once the
UserProviderGuard 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]
Usage
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() { Route::group([ 'middleware' => [ 'start_session', 'auth', //'auth.basic', //'auth.wp_login', //'auth.token' ], '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'); })->middleware('auth.wp_login');
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() { $this->middleware('guest')->except('logout'); } }
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"> <div> <label>Username</label> <input type="text" name="email" placeholder="Username" /> </div> <div> <label>Password</label> <input type="password" name="password" placeholder="Password" /> </div> <div> <input type="submit" value="Submit" /> </div> </form>
Config
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:
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.
Requirements
Wordpress 4+
PHP 5.6+
License
wp-kit/auth is open-sourced software licensed under the MIT License.