我在我的项目中使用基本身份验证来访问Api。在ApiController,我添加了下面的代码在beforeFilter:Cakephp 3 HTTP基本身份验证登录问题
$this->Auth->config('authenticate', [
'Basic' => [
'fields' => ['username' => 'username', 'password' => 'api_key'],
'userModel' => 'Users'
]
]);
所以从铬邮递员应用,我送与基本身份验证凭据POST请求。例如如下所示:
因此,当我发送请求时,我会收到未经授权的错误。
你有没有做到这一点是建议在有关登录问题的其他问题,可以在这里找到在SO基本检查这一个?检查列类型/长度,确保密码真正存储在散列中,调试正在发出的查询(他们是否找到任何东西?如果实际上发现了什么东西,它到底是什么东西,它是否与数据库?),确保散列通常在创建新用户时正确存储等... – ndm
@ndm,我已经完成初始故障排除以检查密码如何存储在数据库中。我可以在用户表中的api_key字段中创建新的API密钥。遵循这个[链接](http://book.cakephp.org/3.0/en/controllers/components/authentication.html#creating-api-keys-for-basic-authentication)。 – Ray
如果没有进一步的逻辑,文档显示没什么意义,因为您不能简单地交换默认使用不同哈希算法的令牌(默认情况下使用不同的哈希算法)交换默认使用配置的密码哈希器(BCRYPT)测试的密码SHA1)。这些文档需要修正,你可能想在GitHub上创建一个问题**(https://github.com/cakephp/docs/issues)。 – ndm