2012-12-08 103 views
8

在我的Rails應用程序中,我使用devise gem來管理用戶。我正在使用mobile_fu gem來分隔來自不同用戶的用戶。如何在註冊後使用設備自動登錄?

我想在這裏實現的是:

  1. 如果用戶從移動設備打開我的網站,我會提取其MSISDN個數讀取頭已經印好了
  2. 如果MSISDN數字在特定的系列,然後我想自動登錄該用戶到我的網站,以便他不必填寫sign_in表單。

我該怎麼做到這一點?

回答

4

你必須:

1)註冊用戶到設計的網站。 2)登錄用戶。

對於第一種情況,你可以這樣做:

user = User.find_by_msisdn(params[:msisdn]) 
if user.nil? 
    user = User.create(field_1: value1, field_2: value2)  
end 

sign_in(user) 

redirect_to after_sign_in_path(user) 

的事情心目中,第一行試圖找到用戶,在第二行,如果不能找到用戶,它立即創建用戶,然後在用戶身上簽名,最後將用戶重定向到登錄後他應該去的地方。

+0

我試過這個,但是當重定向到不同的頁面時,用戶不再登錄。在sign_in(user)後面有current_user和user_signed_in中的數據?返回true。但是,user_signed_in?當指向網站上的不同頁面時返回false。有任何想法嗎? – user2974739

+0

user_session爲空。我認爲這與此有關。有關如何設置用戶會話的任何建議? – user2974739

+1

'after_sign_in_path'被重命名爲'after_sign_in_path_for'。 – artificis