cakephp Cake php 2.10在控制器中使用http基本认证进行登录

inn6fuwd  于 2022-11-11  发布在  PHP
关注(0)|答案(1)|浏览(138)

我正在处理一个用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;
}
omqzjyyz

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

相关问题