/note/tech

認証自作、 Rails 、 Devise

「Rails について深い理解がないならば、 Devise は使うな」とあります。この方針は10 年近く前から書かれています。

これは実際大変重要な指針で、例えば Devise はログイン時にログインした IP アドレスを User モデルに保存しますが、この User モデルを何も考えずに to_json して公開 API として提供してしまえば、ログインユーザーの IP アドレスが漏洩してしまいます。これがどういう問題かは今まさにホットな出来事です。

はっきりといえば Devise は「やりすぎ」「おせっかい」なライブラリであり、実際に Rails のフレームワーク、認証認可の知識、セキュリティや法務の知識がある程度そろっていなければ使いこなせないライブラリです。

なので僕はこれは絶対に使ってはいけないものだと思っています。まず自分自身が「good understanding of the Rails Framework」を持っていると自信を持って言い切れるでしょうか。僕はその自信はありません。例えそう言い切れるとしても、あなたが作っているプロダクトにかかわる人員が今後絶対に「good understanding of the Rails Framework」を持っていると言い切ることができるでしょうか。そんなことはありえないのであって、いつかどこかでチームはジュニアレベルのエンジニアを受け入れるものです。