问题:我需要在使用Laravel 5.4创建的API上实现基本身份验证。由于我们需要实现它没有数据库(刚从config()
获得证书),我试图创建一个注册中间件类似以下:Laravel 5.4没有数据库的基本身份验证
<?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。 我试图在配置中创建多个凭证,从请求中保存用户和密码,但这样,它就像禁用基本身份验证一样工作。
问题:有什么办法可以达到这个目的吗?我怎样才能在我的配置文件中有多个凭据,而不使用数据库?
没有与此代码的问题!只有在用户名和密码不匹配的情况下,您才返回401。如果用户提供了有效的用户名,但密码无效,他就会得到认证。你应该使用||而不是&& – fhugas