Git Product home page Git Product logo

http-basic-auth-guard's Introduction

HTTP Basic Auth Guard

Latest Version on Packagist Software License Total 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 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!

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.

Tested with

  • Lumen 5.2
  • Lumen 5.3
  • Lumen 5.4

Installation

Pull in package

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

Read & Follow Documentation

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.
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.

Add the Service Provider

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

$app->register(Arubacao\BasicAuth\BasicGuardServiceProvider::class);

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.

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 Usage

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');
    }
}

Change log

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Any issues, feedback, suggestions or questions please use issue tracker here.

Security

If you discover any security related issues, please email [email protected] instead of using the issue tracker.

License

The MIT License (MIT).

Analytics

http-basic-auth-guard's People

Contributors

arubacao avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.