HTTP Basic Auth Guard is a Lumen Package that lets you use
basicas your driver for the authentication guard in your application.
The Guard brings back the missing stateless HTTP Basic Authentication possibilities for Lumen 5.2.
As of Lumen 5.2 the package illuminate/session is not included anymore.
Unfortunately, the session driver which is responsible
for calling Auth::onceBasic(), Auth::basic(), or alike
obviously requires/relies on illuminate/session.
Therefore HTTP Basic Authentication does not work out-of-the-box anymore.
To be honest, I have no idea why Taylor Otwell removed this functionality from Lumen 5.2.
My best guess is, that he doesn't even know since my issue got closed instantly on github 😃
Luckily, this package brings the usual functionality back!
- Lumen
5.2or above Installation. - Note: For Laravel 5.* or Lumen 5.1 HTTP Basic Auth still works out-of-the-box with the
sessiondriver: Link.
- Lumen
5.2 - Lumen
5.3 - Lumen
5.4
$ composer require arubacao/http-basic-auth-guardImportant:
Before using Lumen's authentication features, you should uncomment the call to register the
AuthServiceProviderservice provider in yourbootstrap/app.phpfile.
If you would like to useAuth::user()to access the currently authenticated user, you should uncomment the$app->withFacades()method in yourbootstrap/app.phpfile.
Open bootstrap/app.php and register the service provider:
$app->register(Arubacao\BasicAuth\BasicGuardServiceProvider::class);Note: In Lumen you first have to copy the config file from the directory
vendor/laravel/lumen-framework/config/auth.php, create aconfigfolder in your root folder and finally paste the copied file there.
Open your config/auth.php config file.
In guards add a new key of your choice (api in this example).
Add basic as the driver.
Make sure you also set provider for the guard to communicate with your database.
// config/auth.php
'guards' => [
'api' => [
'driver' => 'basic',
'provider' => 'users'
],
// ...
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
],Middleware protecting the route:
Route::get('api/whatever', ['middleware' => 'auth:api', 'uses' => 'NiceController@awesome']);Middleware protecting the controller:
<?php
namespace App\Http\Controllers;
class NiceController extends Controller
{
public function __construct()
{
$this->middleware('auth:api');
}
}Please see CHANGELOG for more information what has changed recently.
Please see CONTRIBUTING for details.
Any issues, feedback, suggestions or questions please use issue tracker here.
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
The MIT License (MIT).