Devise confirmable by Mailgun — Rails Setting

設定好Mailgun跟你的dns之後,我要讓新的註冊者從信箱認證。

照之前ihower的說法,因為希望讓使用者可以馬上使用,先不要開啟認證的機制。
因為我也裝了讓使用者可以fb註冊登入,所以這邊就有安全疑慮的問題

有心人可以先註冊你的email信箱,之後你再用fb註冊登入,你得到的身分會直接寫到之前已經註冊好的這個相同的email底下,而有心人在此時就與你共用同一個帳號了呦~你有啥權限他就有啥權限。

:confirmable打開(右上角那個)

首先在models/user.rb 的設定把 :confirmable打開(加進去)

config/environment/production.rb

79行- 設定domain,這樣信箱裡面的連結才是絕對網址
80行- 用:smtp方式寄信
81行- 因為我用公開github帳號,所以我不想把設定檔推上去這樣api私鑰都被看光光所以讓他專門去讀取一支我不讓他上傳的檔案,之後再手動加到server上。而symbolize_keys這個方法會將Hash中的String key換成Symbol key,這是因為smtp_settings吃的是Symbol key,如果沒有轉的話,會讀不到設定。

config/email.yml

開一個新檔,email.yml在config下

把mailgun給你的資料塞進去,沒有給你的就照上面輸入
第2行跟第11行- 的api_key,之後可以讓你在ActionMailer去用api寄信,但是前提是你要先裝官方的gem才可以叫

.gitignore

記得在ignore list裡加上email.yml

config/deploy.rb

在config/deploy.rb裡設定剛剛不傳上github,所以要去server上share資料夾讀取的檔案

set :linked_files, fetch(:linked_files, []).push(‘config/database.yml’, ‘config/secrets.yml’, ‘config/facebook.yml’, ‘config/rollbar.yml’, ‘config/email.yml’)

project/shared/config/

手動補上email.yml
這樣每次部時都會自動來這讀鑰匙了

佈署好之後就可以來註冊測試一下~

打完收工!