Войдите в приложение с токеном GET / POST - PullRequest
1 голос
/ 03 мая 2010

Я работаю над веб-приложением Symfony, которое имеет стандартную форму входа. Чтобы позволить пользователям легче входить в систему, мы хотим дать им ссылку, которая регистрирует их напрямую. Я уже разработал способ получения токена для использования, но не знаю, как работает процесс входа в Symfony, в частности, как я могу адаптировать его для получения токена GET / POST вместо перенаправления на страницу входа. Любая помощь приветствуется!

Да, и это Symfony 1.2 BTW (и нет, обновление сейчас не вариант)

Ответы [ 2 ]

0 голосов
/ 06 мая 2010

Спасибо, Том, что я закончил тем, что создал второй модуль / действие входа в систему (у меня уже было действие executeLogin, которое в основном устанавливает $ this-> getUser () и $ this-> getUser () -> setAuthenticated (true) ) когда имя пользователя / пароль верны) с токеном вместо имени пользователя / пароля. Некоторые вещи, которые необходимо учитывать при защите: либо очистите свой токен, когда он используется при успешной попытке входа в систему, либо установите временную метку истечения срока действия при создании токена. Таким образом, бот не может «угадать» токен.

0 голосов
/ 03 мая 2010

Не уверен, есть ли какие-либо различия в этом отношении в версии 1.2 по сравнению с 1.4, но в версии 1.4 я бы посоветовал взглянуть на метод signin () sfGuardPlugin (или sfDoctrineGuardPlugin), чтобы найти подходящее решение.

$this->getUser()->signIn(... params ...);

Этот единственный вызов позаботится об аутентификации, поэтому я думаю, что все, что вам действительно нужно сделать, это предварительно разрешить ваши специфичные для ссылки вещи (например, проверить и получить имя пользователя и пароль sfguarduser из db), а затем вызвать этот метод с помощью user- конкретные параметры. Глядя на метод покажет вам, что именно вы передаете в него и как он используется. Это тот же самый файл, который используется в действии post формы входа.

Надеюсь, это направит вас в правильном направлении.

...