我在Laravel中构建了一个API,并试图使用HTTP基本身份验证。我创建了一个电子邮件/密码组合为[email protected]:testpass
的用户。我在下面的网址需要身份验证访问端点:https://[email protected]:[email protected]/users/2
Laravel HTTP基本身份验证不起作用
当我附上auth.basic
路由过滤器,以这条路,我可以成功进行身份验证,并通过Auth
类访问身份验证的用户的详细信息,但因为这是一个API我想使用无状态的HTTP基本身份验证,所以我写了我自己的过滤器:
// Our own auth filter to use onceBasic and return a consistent API response
Route::filter('basic.once', function() {
$result = Auth::onceBasic();
if ($result->getStatusCode() === 401) {
// Unauthorized, return our own response
return Response::json([
'message' => 'Bad credentials'
], Config::get('status.error.unauthorized'));
}
return $result;
});
无论什么时候,的Auth::onceBasic()
结果这里总是返回未经授权,即使用户名/密码组合,我送住宿的相同。即使我在我的过滤器中将Auth::onceBasic()
更改为Auth::basic()
,它仍会返回未授权状态。
我甚至不知道从哪里开始调试,因为我的过滤器基本上与Laravel附带的auth.basic
过滤器一样,尽管使用了更多的代码来生成一致的API输出。
你可以发布你的用户模型吗?另外,你的密码在分贝哈希? – lukasgeiter 2014-11-04 20:55:17
你解决了吗?您是否尝试更改.httaccess? – chemitaxis 2014-11-24 18:33:36