最近遇到兩個專案的 bugs

都是用 Rails 開發的,記錄起來。

其一,除非還沒有 release 給他人(包括分工合作的同事與客戶),否則請不要改動已經寫好的 DB migration(s),不然就會有 time paradox 式的荒謬劇上演。

習得教訓:只看 db/schema.rb 是不準的,請跑 rake db:version 才知道當前運作的專案的 migration 是到哪個版次。

其二,在 Doorkeeper 裡、牽涉到 doorkeeper_for 處理的 controller(s) 當中、所有的 Devise seesion 操作,如果是從非 localhost 來的 requests,一概無效。(←好拗口)

如果想要「在認證完 OAuth 拿到 doorkeeper_token 後立即幹掉 Devise session,以免多開一道門就多增加一個安全風險」,得在 Doorkeeper::AuthorizationsController 處理 new 時就做掉。

習得教訓:「本機上明明就可以,為什麼搬到部署環境上就不行了?」就是推託、就是偷懶。

CC BY-SA 4.0 This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Leave a Reply

Your email address will not be published. Required fields are marked *