gpt4 book ai didi

php - Lumen HTTP 基本认证

转载 作者:搜寻专家 更新时间:2023-10-31 21:25:47 25 4
gpt4 key购买 nike

我正在尝试在 Lumen 项目中使用 Laravel 的 HTTP 基本身份验证。

routes.php 文件中,我为我需要验证的路由设置了 auth.basic 中间件:

$app->get('/test', ['middleware' => 'auth.basic', function() {
return "test stuff";
}]);

bootstrap.php 上,我已经注册了中间件和 auth 服务提供者:

$app->routeMiddleware([
'auth.basic' => Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
]);

[...]

$app->register(App\Providers\AuthServiceProvider::class);

但是当我尝试通过访问 http://lumen/test 来测试路由时,我收到以下错误:

fatal error :在第 38 行调用 C:\source\lumen\vendor\illuminate\auth\Middleware\AuthenticateWithBasicAuth.php 中未定义的方法 Illuminate\Auth\RequestGuard::basic()

有谁知道我怎样才能得到门卫的基本认证码?

谢谢。

最佳答案

遇到了类似的问题,想对数据库中的用户使用基本身份验证,所以最终编写了我自己的 AuthServiceProvider 并将其注册到 bootstrap/app.php

这是类(class),也许它会对您的情况有所帮助。

<?php

namespace App\Providers;

use App\User;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\ServiceProvider;

class HttpBasicAuthServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}

/**
* Boot the authentication services for the application.
*
* @return void
*/
public function boot()
{
$this->app['auth']->viaRequest('api', function ($request) {
$email = $_SERVER['PHP_AUTH_USER'];
$password = $_SERVER['PHP_AUTH_PW'];

if ($email && $password) {
$user = User::whereEmail($email)->first();
if (Hash::check($password, $user->password)) {
return $user;
}
}

return null;
});
}
}

关于php - Lumen HTTP 基本认证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36461115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com