PHPackages                             arubacao/http-basic-auth-guard - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. arubacao/http-basic-auth-guard

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

arubacao/http-basic-auth-guard
==============================

HTTP Basic Auth Guard for Lumen &gt;=5.2

2.0.0(7y ago)4055.5k↓16.7%10MITPHPPHP ^7.1.3

Since Mar 20Pushed 7y ago6 watchersCompare

[ Source](https://github.com/arubacao/http-basic-auth-guard)[ Packagist](https://packagist.org/packages/arubacao/http-basic-auth-guard)[ Docs](https://github.com/arubacao/http-basic-auth-guard)[ RSS](/packages/arubacao-http-basic-auth-guard/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (2)Versions (6)Used By (0)

HTTP Basic Auth Guard
=====================

[](#http-basic-auth-guard)

[![Latest Version on Packagist](https://camo.githubusercontent.com/efcc6af9458dc87b2b5dce10fa8c325736aa2c2e4201d101f6b46c9743f7fa65/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f617275626163616f2f687474702d62617369632d617574682d67756172642e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/arubacao/http-basic-auth-guard)[![Software License](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE.md)[![Total Downloads](https://camo.githubusercontent.com/139dc8b19b6c17480834b4b3e7af445e00f8333a592dba8d8bbc4029172fc908/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f617275626163616f2f687474702d62617369632d617574682d67756172642e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/arubacao/http-basic-auth-guard)

> HTTP Basic Auth Guard is a Lumen Package that lets you use `basic` as your driver for the authentication guard in your application.

> The Guard brings back the missing stateless HTTP Basic Authentication possibilities for **Lumen &gt;=5.2**.

Explanation
-----------

[](#explanation)

As of Lumen 5.2 the **session storage** is not included anymore.
Unfortunately, for calling `Auth::onceBasic()`, `Auth::basic()`, or [alike](https://github.com/illuminate/auth/blob/v5.2.37/Middleware/AuthenticateWithBasicAuth.php#L38)you'll need the [`session` driver](https://github.com/laravel/laravel/blob/v5.2.31/config/auth.php#L40) which requires the **session storage**.
**Therefore HTTP Basic Authentication does not work out-of-the-box anymore for Lumen `>=5.2`.**
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](https://github.com/laravel/lumen-framework/issues/388) on github 😃
Luckily, this package brings the usual functionality back!

Requirements
------------

[](#requirements)

- Lumen **`5.2`** or **above** Installation.
- **Note:** For Laravel 5.\* or Lumen 5.1 HTTP Basic Auth still works out-of-the-box with the `session` driver: [Link](https://laravel.com/docs/5.2/authentication#stateless-http-basic-authentication).

Tested with
-----------

[](#tested-with)

- Lumen **`5.2`**, **`5.3`**, **`5.4`**, **`5.5`**, **`5.6`**, **`5.7`**
- PHP **`5.6`**, **`7.0`**, **`7.1`**, **`7.2`**, **`7.3`**

Current master is for Lumen &gt;= `5.7`. For Lumen &lt;= `5.6` Use version [`^1.0`](https://github.com/arubacao/http-basic-auth-guard/tree/1.0.4).

Installation
------------

[](#installation)

### 1. Pull in package

[](#1-pull-in-package)

```
$ composer require arubacao/http-basic-auth-guard
```

### 2. Read &amp; Follow Official Lumen Documentation for Authentication

[](#2-read--follow-official-lumen-documentation-for-authentication)

*Important*:

> Before using Lumen's authentication features, you should uncomment the call to register the `AuthServiceProvider` service provider in your `bootstrap/app.php` file.

```
// bootstrap/app.php

// Uncomment the following line
 $app->register(App\Providers\AuthServiceProvider::class);
```

> Of course, any routes you wish to authenticate should be assigned the auth middleware, so you should uncomment the call to $app-&gt;routeMiddleware() in your bootstrap/app.php file:

```
// bootstrap/app.php

// Uncomment the following lines
 $app->routeMiddleware([
    'auth' => App\Http\Middleware\Authenticate::class,
 ]);
```

> If you would like to use `Auth::user()` to access the currently authenticated user, you should uncomment the `$app->withFacades()` method in your `bootstrap/app.php` file.

```
// bootstrap/app.php

// Uncomment the following lines
 $app->withFacades();
 $app->withEloquent();
```

### 3. Add the Service Provider

[](#3-add-the-service-provider)

Open `bootstrap/app.php` and register the service provider:

```
// bootstrap/app.php

// Add the following line
$app->register(Arubacao\BasicAuth\BasicGuardServiceProvider::class);
```

### 4. Setup Guard Driver

[](#4-setup-guard-driver)

> **Note:** In Lumen you first have to copy the config file from the directory `vendor/laravel/lumen-framework/config/auth.php`, create a `config` folder in your root folder and finally paste the copied file there.

```
$ mkdir config
$ cp vendor/laravel/lumen-framework/config/auth.php config/
```

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,
    ],
],
```

Usage
-----

[](#usage)

Middleware protecting the route:

```
Route::get('api/whatever', ['middleware' => 'auth:api', 'uses' => 'NiceController@awesome']);
```

Middleware protecting the controller:

```
