2010-11-26 1 views
4

Я использую Authlogic для обработки логина/аутентификации/сеансов и т. Д., И я использую paypal для обработки моего платежа за подписку на мой сайт. Для пользователей, чей пробный срок истек, я хотел бы автоматически их вносить в журнал после того, как они пройдут процесс оплаты в PayPal, но я не могу решить, как это сделать без пароля. Мой поток таким образом:Authlogic: как войти в систему за кулисами, не зная своего пароля

  • с истекшим сроком регистрации пользователя в
  • их суда истек, поэтому я толкать их на страницу подписки, отслеживать, кто они по своей уникальной persistence_token поле, которое я поставил в PARAM который отправляется на paypal.
  • , когда я получаю уведомление о платеже от paypal, я также получаю свой токен, поэтому я знаю, какой пользователь заплатил, и я соответствующим образом изменяю их счет.
  • , когда они заплатили в PayPal, кнопка отправки их обратно на мой сайт имеет уникальный знак их заказа, поэтому я могу сказать, что это тот, кто только что заплатил, что собирается на эту страницу «полная подписка» а не кто-либо, просто набрав URL-адрес своего браузера.
  • Когда они возвращаются с PayPal на сайт, они все равно выходят из системы, и им необходимо пройти процедуру регистрации/регистрации.

В описанной выше ситуации, потому что я получить маркер порядка в Params на моей странице «subscription_complete», я знаю, что пользователь является тем же, кто только что заплатил, и поэтому у меня есть достаточно информации, чтобы доверять им , как если бы они вошли в систему. Поэтому я хотел бы автоматически их записывать, т. е. создавать для них запись UserSession. Но проблема в том, что я не знаю их пароля (потому что пароли имеют одностороннюю зашифровку), и мне нужен пароль для создания user_session.

Итак, мой вопрос: если я доверяю текущему пользователю, но не знаю их пароля, могу ли я все равно их зарегистрировать? Если да, то как?

ответ

5

Раньше я использовал UserSession.create(@user). Разве это не работает для вас?