2010-11-26 95 views
4

我使用Authlogic來處理登錄/身份驗證/會話等,我使用paypal處理訂閱我的網站的付款。對於試用期已過的用戶,我想在完成PayPal付款流程後自動登錄,但我無法確定如何在沒有密碼的情況下執行此操作。我的流程是這樣的:Authlogic:如何在不知道密碼的情況下在幕後登錄用戶

  • 他們的試用期結束後用戶登錄已過期,所以我把它們推到訂閱頁面,跟蹤,他們是通過其獨特的persistence_token領域,我把設置了一個param誰它被髮送到PayPal。
  • 當我從paypal收到付款通知時,我也獲得了他們的代幣,所以我知道哪個用戶已付款,並且我相應地修改了他們的帳戶。
  • 當他們用paypal付款時,將它們發送回我的網站的按鈕具有唯一的訂單標記,所以我可以告訴它是剛剛付款的人將進入「訂閱完成」頁面而不是任何人只需在瀏覽器中輸入url。
  • 當他們從貝寶返回到網站時,他們仍然退出登錄,他們必須通過登錄/註冊過程。

在上述情況下,因爲我在我的'subscription_complete'頁面的params中獲得了訂單令牌,我知道用戶是剛剛付款的同一個用戶,所以我有足夠的信息來信任他們,就好像他們已經登錄了一樣。所以,我想自動登錄它們,即爲它們創建一個UserSession記錄。但問題是我不知道他們的密碼(因爲密碼是單向加密的),我需要passsword來創建user_session。

所以,我的問題是:如果我信任當前用戶,但不知道他們的密碼,我仍然可以記錄他們嗎?如果是這樣,怎麼樣?

回答

5

我以前用過UserSession.create(@user)。這不適合你嗎?

相關問題