Security 使用GET/POST令牌登录到应用程序

Security 使用GET/POST令牌登录到应用程序,security,login,symfony1,token,Security,Login,Symfony1,Token,我在一个symfonyweb应用程序上工作,它有一个标准的登录表单。为了让用户更容易登录,我们想给他们一个直接登录的链接。我已经建立了一种获取令牌的方法,但是我不知道Symfony登录过程是如何工作的,特别是如何调整它以获取get/POST令牌,而不是重定向到登录页面。 感谢您的帮助 哦,这是Symfony 1.2 BTW(不,升级现在不是一个选项)不确定1.2与1.4相比在这方面是否有任何差异,但在1.4中,我建议查看sfGuardPlugin的signin()方法(或sfDoctrineGu

我在一个symfonyweb应用程序上工作,它有一个标准的登录表单。为了让用户更容易登录,我们想给他们一个直接登录的链接。我已经建立了一种获取令牌的方法,但是我不知道Symfony登录过程是如何工作的,特别是如何调整它以获取get/POST令牌,而不是重定向到登录页面。 感谢您的帮助


哦,这是Symfony 1.2 BTW(不,升级现在不是一个选项)

不确定1.2与1.4相比在这方面是否有任何差异,但在1.4中,我建议查看sfGuardPlugin的signin()方法(或sfDoctrineGuardPlugin的方法)以找出合适的解决方案

$this->getUser()->signIn(... params ...);
这一次调用将负责身份验证,因此我认为您真正需要做的是事先解决特定于链接的问题(例如,验证并从db获取sfguarduser用户名和密码),然后使用特定于用户的参数调用该方法。查看该方法将准确地向您显示您正在传递什么以及如何使用它。它与登录表单的post操作中使用的相同


希望这为您指明了正确的方向。

谢谢Tom,我最后做的是用令牌而不是用户名/密码构建第二个登录模块/操作(我已经有了一个executeLogin操作,它基本上设置了$this->getUser()和$this->getUser()->setAuthenticated(true))。
在安全性方面需要考虑的一些事情:在成功登录尝试中使用令牌时清除令牌,或者在创建令牌时设置到期时间戳。这样,机器人就无法“猜测”令牌。

请不要构建该功能-这是一个安全漏洞。你的意思是当有人截获令牌时?我们已经处理好了:)对不起,普拉萨德,我不能,因为我离开了我创建它的公司;)你好,亨利,这条线已经很久了。我实现了一些与你在这里提到的完全相同的东西。设置用户对象是唯一需要做的事情。