我在Symfony Web应用程序上工作,该应用程序具有标准登录表单。为了让用户更容易登录,我们希望为他们提供一个直接登录的链接。我已经构建了一种获取令牌的方法,但我不知道Symfony登录过程是如何工作的,特别是我如何调整它以获取GET / POST令牌而不是重定向到登录页面。 任何帮助表示赞赏!
哦,这是Symfony 1.2 BTW(不,现在升级不是一个选项)
答案 0 :(得分:0)
不确定在1.2中与1.4相比是否存在任何差异,但在1.4中我建议查看sfGuardPlugin的signin()方法(或sfDoctrineGuardPlugin)以找出合适的解决方案。
$this->getUser()->signIn(... params ...);
单个调用将负责身份验证,因此我认为您真正需要做的就是事先解决特定于链接的内容(例如,验证并从db获取sfguarduser用户名和密码),然后与用户调用该方法特定的参数。查看该方法将向您显示您正在传递给它的内容以及它是如何使用的。它与登录表单的后期操作中使用的相同。
希望指出你正确的方向。
答案 1 :(得分:0)
感谢Tom,我最终做的是构建第二个登录模块/动作(我已经有一个executeLogin动作,基本上设置了$ this-> getUser()和$ this-> getUser() - > setAuthenticated(true)当用户名/密码正确时)使用令牌而不是用户名/密码。 安全性需要考虑的一些事项:要么在成功登录尝试时使用令牌,要么在创建令牌时设置过期时间戳。通过这种方式,机器人无法“猜测”令牌。