gpt4 book ai didi

php - Laravel 5.4 无需数据库的基本身份验证

转载 作者:行者123 更新时间:2023-12-02 20:46:57 26 4
gpt4 key购买 nike

问题:我需要在使用 Laravel 5.4 创建的 API 上实现基本身份验证。由于我们需要在没有数据库的情况下实现它(只需从 config() 获取凭据),我尝试创建一个注册的中间件,如下所示:

<?php

namespace App\Http\Middleware;

class AuthenticateOnceWithBasicAuth
{
public function handle($request, $next)
{
if($request->getUser() != conf('auth.credentials.user') && $request->getPassword() != conf('auth.credentials.pass')) {
$headers = array('WWW-Authenticate' => 'Basic');
return response('Unauthorized', 401, $headers);
}
return $next($request);
}
}

它可以工作,但这样我只能拥有整个 API 的一个凭据。我尝试在配置中创建多个凭据,从请求中保存用户和密码,但这样一来,它就像禁用了基本身份验证一样。

问题:有什么办法可以实现这一点吗?如何在不使用数据库的情况下在配置文件中拥有多个凭据?

最佳答案

您可以将授权的用户名和密码作为集合保存在配置文件中。

config/myconfig.php

return [
'authorized_identities' => collect([
['user1','password1'],
['user2','password2'],
...
]),
];

然后在你的中间件中

if(config('myconfig.authorized_identites')->contains([$request->getUser(),$request->getPassword()]))

关于php - Laravel 5.4 无需数据库的基本身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43981643/

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