Ae2f9b4a14f7d9b08c1e26b02952f0cd

嘗試做一個讓使用者預先signup的網站

2012-09-16 13:48:30 +0800RexableRuby on Rails 節點 中發起
最後由 xdite2012-09-18 13:55:42 +0800回應 , 219次閱讀

需求是能讓使用者輸入email address,然後網站自動發一封含有認證連結的email給他/她,確認他/她的確是這個email address的擁有者。當然認證連結不能隨便讓別人猜得到。

儲存使用者輸入的email address沒問題,寄信也看過rails guide的actionmailer basic應該ok。問題在要怎麼產生一個專屬於該使用者的認證連結。

有看過http://github.com/plataformatec/devise#getting-startedhttp://github.com/RailsApps/rails-prelaunch-signup/blob/master/app/controllers/confirmations_controller.rb ,不過這兩個對我這個新手來說都太複雜又太黑箱。搞不懂其中運作方式的話,還滿難放手去用的。另外devise預設會加一堆我應該不需要的東西,有辦法在產生的時候就先排除嗎?

截至 2012-09-18 13:55:42 +0800,共收到 2 條回應
009994c3985985809d2d644bd49aa1c2
lulalala 1樓, 於2012-09-18 11:42:05 +0800回應

先加 activation_code 以及 activated 欄位

認證連結的亂數部分在產生使用者的時候用 before_create callback 產生,存在 activation_code 。然後添加一個 activate 的 action 在 user controller ,並添加這個的 route:

  resources :users do
    collection do
      get 'activate/:activation_code', action: :activate, as: :activate

這樣使用者在 http://example.com/users/activate/DSVGDSGJ 就會導到 activate 動作。在資料庫中找 activation_code 有沒有符合的,有的話就把 activted 設為 true 囉。

19e786a2a74377ff6e052d87fd8d1fa8
xdite 2樓, 於2012-09-18 13:55:42 +0800回應

agree

需要 登入 後方可回應,如果你還沒有帳號按這裡 註冊