我有一个项目,通过 mysql 数据库使用用户名和密码进行简单身份验证。我有 3 个字段的简单身份验证表单:通过、用户和 yubico 密钥。我想要两种身份验证变体:通过 login+pass 和仅通过yubico key。现在,我通过本主题中的教程创建了自定义身份验证提供程序。
结果,它不起作用。我得到这个错误日志:
异常 'Symfony\Component\Security\Core\Exception\BadCredentialsException' 与 E:\Dropbox\hmciAdmin\vendor\symfony\symfony\src\Symfony\Component\Security\Core\Authentication\Provider\UserAuthenticationProvider 中的消息 'Bad credentials'。 php:70 堆栈跟踪:#0 E:\Dropbox\hmciAdmin\app\cache\dev\classes.php(183): session_start() #1 E:\Dropbox\hmciAdmin\app\cache\dev\classes.php( 277): Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage->start()
我的代码在这里:
- https://dl.dropbox.com/u/30086473/Authentication/Firewall/YubicoListener.php
- https://dl.dropbox.com/u/30086473/Authentication/Provider/YubicoProvider.php
- https://dl.dropbox.com/u/30086473/Authentication/Token/YubicoToken.php
- https://dl.dropbox.com/u/30086473/Authentication/Token/config/services.yml
- https://dl.dropbox.com/u/30086473/Authentication/Token/config/config/security.yml
更新:
更新 2:
我解决了这个问题。问题是我对两种类型的授权都使用了相同的 html 表单,但是有必要将 yubico 密钥发送到受保护页面的 url。现在一切正常。谢谢大家的帮助。