Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/arubacao/http-basic-auth-guard
HTTP Basic Auth Guard for Lumen 5.x
https://github.com/arubacao/http-basic-auth-guard
guard http-basic-auth laravel lumen
Last synced: 11 days ago
JSON representation
HTTP Basic Auth Guard for Lumen 5.x
- Host: GitHub
- URL: https://github.com/arubacao/http-basic-auth-guard
- Owner: arubacao
- License: mit
- Created: 2016-03-20T19:14:34.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2019-04-24T13:51:29.000Z (over 5 years ago)
- Last Synced: 2024-04-24T04:11:38.788Z (7 months ago)
- Topics: guard, http-basic-auth, laravel, lumen
- Language: PHP
- Homepage:
- Size: 72.3 KB
- Stars: 40
- Watchers: 7
- Forks: 10
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
# HTTP Basic Auth Guard
[![Latest Version on Packagist][ico-version]][link-packagist]
[![Software License][ico-license]](LICENSE.md)
[![Total Downloads][ico-downloads]][link-downloads]> 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 >=5.2**.
## 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 :smiley:
Luckily, this package brings the usual functionality back!## 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
- 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 >= `5.7`.
For Lumen <= `5.6` Use version [`^1.0`](https://github.com/arubacao/http-basic-auth-guard/tree/1.0.4).## Installation
### 1. Pull in package
```bash
$ composer require arubacao/http-basic-auth-guard
```### 2. Read & Follow Official Lumen Documentation for Authentication
[https://lumen.laravel.com/docs/5.7/authentication](https://lumen.laravel.com/docs/5.7/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.```php
// 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->routeMiddleware() in your bootstrap/app.php file:
```php
// 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.
```php
// bootstrap/app.php// Uncomment the following lines
$app->withFacades();
$app->withEloquent();```
### 3. Add the Service Provider
Open `bootstrap/app.php` and register the service provider:
```php
// bootstrap/app.php// Add the following line
$app->register(Arubacao\BasicAuth\BasicGuardServiceProvider::class);
```### 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.
```bash
$ 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.```php
// config/auth.php
'guards' => [
'api' => [
'driver' => 'basic',
'provider' => 'users'
],// ...
],'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
],
```## Usage
Middleware protecting the route:```php
Route::get('api/whatever', ['middleware' => 'auth:api', 'uses' => 'NiceController@awesome']);
```Middleware protecting the controller:
```php
middleware('auth:api');
}
}
```## Change log
Please see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.## Contributing
Please see [CONTRIBUTING](CONTRIBUTING.md) for details.Any issues, feedback, suggestions or questions please use issue tracker [here](https://github.com/arubacao/http-basic-auth-guard/issues).
## Security
If you discover any security related issues, please email [email protected] instead of using the issue tracker.## License
The MIT License (MIT).[ico-version]: https://img.shields.io/packagist/v/arubacao/http-basic-auth-guard.svg?style=flat-square
[ico-license]: https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square
[ico-travis]: https://img.shields.io/travis/arubacao/http-basic-auth-guard/master.svg?style=flat-square
[ico-scrutinizer]: https://img.shields.io/scrutinizer/coverage/g/arubacao/http-basic-auth-guard.svg?style=flat-square
[ico-code-quality]: https://img.shields.io/scrutinizer/g/arubacao/http-basic-auth-guard.svg?style=flat-square
[ico-downloads]: https://img.shields.io/packagist/dt/arubacao/http-basic-auth-guard.svg?style=flat-square[link-packagist]: https://packagist.org/packages/arubacao/http-basic-auth-guard
[link-travis]: https://travis-ci.org/arubacao/http-basic-auth-guard
[link-scrutinizer]: https://scrutinizer-ci.com/g/arubacao/http-basic-auth-guard/code-structure
[link-code-quality]: https://scrutinizer-ci.com/g/arubacao/http-basic-auth-guard
[link-downloads]: https://packagist.org/packages/arubacao/http-basic-auth-guard
[link-author]: https://github.com/arubacao
[link-contributors]: ../../contributors[![Analytics](https://ga-beacon.appspot.com/UA-77737156-2/readme?pixel)](https://github.com/arubacao/http-basic-auth-guard)