2011-11-18 57 views
7

如何讓用戶在通過Omniauth創建帳戶時設置密碼? Omniauth在註冊過程中創建了一個存根密碼,但用戶不知道該密碼是什麼,因此無法從編輯用戶頁面更改該密碼。在使用Omniauth創建帳戶後設置密碼(Rails + Devise)

我試圖用指令覆蓋編輯窗體:How To: Allow users to edit their account without providing a password。我能夠更改數據庫中的加密密碼,但無法使用新密碼登錄,奇怪的是,在登錄失敗期間,控制檯中沒有看到任何錯誤。

任何想法?

我正在使用Rails 3.0.7和Devise 1.4.8。我的登錄/註冊碼基於標準Omniauth+Devise教程。

回答

0

Omniauth只向您提供有關遠程用戶的信息,並保證此用戶已連接到提供商。然後,您有三種選擇:

  • 創建與信息的用戶,並設置不與默認方法指定的字段(這是你做了什麼密碼)
  • 使用該信息預填色器件報名表格(self.new_with_session,如教程中所述),並讓用戶自己創建自己的帳戶,填寫缺失的字段(如密碼)
  • 將omniauth信息存儲在會話(或cookie)中,將用戶重定向到缺少的字段,並使用表單信息和會話信息來創建您的新用戶。
相關問題