我正在为我的应用程序使用DynamoDB,因此在身份验证方面,我不能选择ORM原则。
我已经创建了一个基本的用户提供程序,并且在使用sha1哈希时使其工作正常,但是我完全陷入/不理解如何使用salt。
仅供参考:我的代码基于手册中的guide
代码:
提交“新用户”表单后,抓取原始数据并执行以下操作然后继续保存到数据库 - 这样可以正常工作:
$salt = '79fdshjh408hjhgd87r5438ujl';
$password = base64_encode(sha1($rawPassword.'{'.$salt.'}'));
在进行身份验证时,我有一个'userProvider',它根据来自数据库的用户名请求用户详细信息 - 这也正常,我已经返回了所有详细信息
//WebserviceUserProvider.php
$username = $userData['userName'];
$password = $userData['password'];
$roles[0] = 'ROLE_ADMIN';
$salt = '79fdshjh408hjhgd87r5438ujl';
return new WebserviceUser($username, $password, $salt, $roles);
WebserviceUser文件是docs:
中文件的直接副本security.yml
security:
encoders:
HvH\SecurityBundle\Security\WebserviceUser:
algorithm: sha1
iterations: 1
encode_as_base64: true
如果有人能指出我正确的方向,我将不胜感激。
谢谢