我正在处理一个用Cake PHP 2.10构建的遗留项目,需要在我的一个控制器操作中有条件地使用HTTP基本身份验证。它目前被设置为使用identify
方法,并从控制器操作中发出请求,我需要让它使用HTTP基本身份验证。
我已经在我的控制器操作中设置了它,但是当我通过Postman以http basic的形式传递我的用户名和密码时,$user
总是返回一个布尔值true
,不管我是否登录。
我错过了什么?
public function appv6()
{
header("Expires: Tue, 03 Jul 2001 06:00:00 GMT");
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
$this->Auth->sessionKey = false;
$this->Auth->authenticate = array('Basic');
$user = $this->Auth->login();
var_dump($user);
die;
}
1条答案
按热度按时间omqzjyyz1#
当使用Basic Auth时,不需要调用
$this->Auth->login()
,我认为在调用它的时候,用户已经通过了认证。由于基本身份验证和摘要身份验证不需要初始POST或表单,因此如果仅使用基本/摘要身份验证器,则不需要在控制器中执行登录操作...无状态身份验证将在每次请求时重新验证用户的凭据...
https://book.cakephp.org/2/en/core-libraries/components/authentication.html#using-digest-and-basic-authentication-for-logging-in