vinkla / 盾牌
9.0.0
2023-02-14 10:29 UTC
Requires
- php: ^8.1
- illuminate/support: ^10.0
- symfony/http-kernel: ^6.2
Requires (Dev)
- orchestra/testbench: ^8.0
- phpunit/phpunit: ^10.0
README
此包曾经是Laravel的HTTP基本认证中间件。然而,由于我不再个人使用它,现在已被弃用。Laravel已经为它们的网络守卫内置了基本认证支持。
如果您需要为API使用更简单的基本认证,而不是依赖第三方库,您可以直接添加。请按照以下指南操作。
首先,更新您的.env
文件,如下所示
BASIC_AUTH_USER=your-username BASIC_AUTH_PASSWORD=your-password
按照以下方式修改您的config/auth.php
文件
'basic' => [ 'user' => env('BASIC_AUTH_USER'), 'password' => env('BASIC_AUTH_PASSWORD'), ],
最后,创建一个类似于以下代码的中间件
<?php declare(strict_types=1); namespace App\Http\Middleware; use Illuminate\Http\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Exception\UnauthorizedHttpException; class BasicAuthMiddleware { public function handle(Request $request, Closure $next): Response { $user = config('auth.basic.user'); $password = config('auth.basic.password'); if ( $request->getUser() !== $user || $request->getPassword() !== $password ) { throw new UnauthorizedHttpException('Basic'); } return $next($request); } }
就是这样!现在您可以在路由中使用此中间件了。
use App\Http\Middleware\BasicAuthMiddleware; use App\Models\User; Route::get('api/users', function () { return User::all(); })->middleware(BasicAuthMiddleware::class);