我有一个应用程序,我想在Symfony3上迁移,但我有一些问题。 正如标题所说,我想在Symfony3中迁移用户表。 我使用FOS用户软件包登录,但我的遗留用户没有盐。 密码使用md5加密进行加密。我没有看到关于这个问题的解释,我遵循了这个解释,但这对我没有用。 这是我的代码。
这是security.yml
security:
encoders:
FOS\UserBundle\Model\UserInterface:
id: trgovina_lea.legacy_encoder
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
providers:
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
# if you are using Symfony < 2.8, use the following config instead:
# csrf_provider: form.csrf_provider
logout: true
anonymous: true
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_ADMIN }
这是自定义编码器服务
use Symfony\Component\Security\Core\Encoder\PasswordEncoderInterface;
class LegacyEncoder implements PasswordEncoderInterface
{
public function __construct() {
}
public function encodePassword($raw, $salt) {
return md5($raw);
}
public function isPasswordValid($encoded, $raw, $salt) {
return $encoded === $this->encodePassword( $raw, $salt );
}
}
所以我需要使用没有盐的md5密码登录用户。
我看到了一些这样的例子: https://stackoverflow.com/a/24680752
但这也不能解决我的问题。它总是返回无效的凭证。
你们这些人