php-cpm / http-basic-auth-guard by php-cpm

HTTP Basic Auth Guard for Lumen 5.2
289
0
2
Package Data
Maintainer Username: php-cpm
Maintainer Contact: zouyi@leying265.com (zouyi)
Package Create Date: 2017-12-25
Package Last Update: 2018-01-10
Language: PHP
License: MIT
Last Refreshed: 2024-05-03 15:17:27
Package Statistics
Total Downloads: 289
Monthly Downloads: 0
Daily Downloads: 0
Total Stars: 0
Total Watchers: 2
Total Forks: 0
Total Open Issues: 0

HTTP Basic Auth Guard

[![Latest Version on Packagist][ico-version]][link-packagist] ![Software License][ico-license] [![Total Downloads][ico-downloads]][link-downloads]

This is a modified version of HTTP Basic Auth Guard, provided for api auth.

when I readed Pingxx's documents, They tell me the APIs should be authed by basic auth and leave password empty,then I found their php SDK use bearer Token way

so I make my own version middleware to sovle this problem.

As stateless APIs, each time request, we need to verify a token called API Secret.

so parse the request Header to get a token, verify it through Model and get Info from db.

Installation

Pull in package

$ composer require php-cpm/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(Phpcpm\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 zouyi@leying365.com instead of using the issue tracker.

License

The MIT License (MIT).