arubacao/http-basic-auth-guard

适用于 Lumen >=5.2 的 HTTP Basic Auth Guard

2.0.0 2019-04-24 13:49 UTC

This package is auto-updated.

Last update: 2024-08-25 06:47:36 UTC


README

Latest Version on Packagist Software License Total Downloads

HTTP Basic Auth Guard 是一个 Lumen 包,允许您将 basic 作为应用程序中身份验证守卫的驱动程序。

该守卫为 Lumen >=5.2 恢复了缺失的无状态 HTTP Basic 身份验证的可能性。

说明

截至 Lumen 5.2,不再包含 会话存储
不幸的是,要调用 Auth::onceBasic()Auth::basic() 或类似功能,您需要 session 驱动程序,这需要 会话存储
因此,HTTP Basic 身份验证不再为 Lumen >=5.2 默认工作。
坦白说,我不知道 Taylor Otwell 为什么从 Lumen 5.2 中移除了这个功能。
我的最好猜测是,他甚至不知道,因为我的问题在 github 上被 立即关闭 😃
幸运的是,这个包恢复了通常的功能!

要求

  • Lumen 5.2 或更高版本安装。
  • 注意:对于 Laravel 5.* 或 Lumen 5.1,HTTP Basic Auth 仍然可以使用 session 驱动程序默认工作:[链接](https://laravel.net.cn/docs/5.2/authentication#stateless-http-basic-authentication)。

测试于

  • Lumen 5.25.35.45.55.65.7
  • PHP 5.67.07.17.27.3

当前主分支适用于 Lumen >= 5.7。对于 Lumen <= 5.6,请使用版本 ^1.0

安装

1. 拉取包

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

2. 阅读并遵循官方 Lumen 文档中的身份验证说明

https://lumen.laravel.com/docs/5.7/authentication

重要:

在使用 Lumen 的身份验证功能之前,您应该在您的 bootstrap/app.php 文件中取消注释注册 AuthServiceProvider 服务提供者的调用。

// bootstrap/app.php

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

当然,您希望进行身份验证的任何路由都应该分配 auth 中间件,因此您应该在您的 bootstrap/app.php 文件中取消注释对 $app->routeMiddleware() 的调用。

// bootstrap/app.php

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

如果您想使用 Auth::user() 来访问当前已验证的用户,您应该在您的 bootstrap/app.php 文件中取消注释 $app->withFacades() 方法。

// bootstrap/app.php

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

3. 添加服务提供者

打开 bootstrap/app.php 并注册服务提供者

// bootstrap/app.php

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

4. 设置守卫驱动程序

注意:在 Lumen 中,您首先需要从 vendor/laravel/lumen-framework/config/auth.php 目录复制配置文件,在您的根目录中创建一个 config 文件夹,最后将复制的文件粘贴到那里。

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

打开您的 config/auth.php 配置文件。
guards 中添加一个新的键(例如本例中的 api)。
basic 作为驱动程序。
确保您还设置了与数据库通信的守卫的 provider

// config/auth.php
'guards' => [
    'api' => [
        'driver' => 'basic',
        'provider' => 'users'
    ],

    // ...
],

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model'  => App\User::class,
    ],
],

使用方法

保护路由的中间件

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

保护控制器的中间件

<?php

namespace App\Http\Controllers;

class NiceController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth:api');
    }
}

变更日志

请参阅变更日志了解最近发生了哪些变化。

贡献

请参阅贡献指南了解详细信息。

如有任何问题、反馈、建议或疑问,请使用问题追踪器

安全性

如果您发现任何与安全相关的问题,请发送电子邮件至arubacao@gmail.com,而不是使用问题追踪器。

许可协议

MIT许可协议(MIT)。

Analytics