我一直在使用 Symfony 2.1 开发自定义身份验证系统。经过与 Symfony 的大量战斗后,我得到了一些可以工作但不完全的东西......
问题:登录后(通过表单),用户已登录但未通过身份验证。
上下文:由于用户必须通过 HTML 表单提交他们的凭据,我必须创建一个扩展的侦听器AbstractAuthenticationListener
。
问题:侦听器不应该自动将令牌添加到SecurityContext
?如果不是这种情况,我应该手动执行吗?
过程:
用户通过 HTML 表单提交他的凭据
侦听器拦截请求并运行尝试身份验证
Listener 调用 AuthenticationManager 的(实现 AuthenticationProviderInterface)认证方法
AuthenticationManager 调用 UserProvider(实现 UserProviderInterface)从我的 web 服务中检索用户数据。
UserProvider 返回一个实现 UserInterface的User类
AuthenticationManager 创建一个实现 TokenInterface的Token 。
AuthenticationManager 将令牌返回给侦听器。
侦听器的尝试身份验证从 AuthenticationManager 的方法返回令牌:身份验证
用户已登录但未通过身份验证。
我没有显示代码示例以避免帖子超载。如果需要,我会编辑帖子。