質問: ユーザー認証等に使用されるdeviseというものがあると思いますが、railsチュートリアルのような簡素な認証システムとどちらがいいですか? 簡単に認証システムを作れるだけでなく他にいろいろな利点がdeviseにはあるのでしょうか? またFacebook等での認証も考えた場合、やはりdeviseを使ったほうがいい、または使わなければできないということはありますか? よろしくお願いします。
回答: それはYESでもありNOでもあります。結局は**どんな認証にしたいのか**によります。 Railsで認証を実装するにはdeviseが有名ですが、選択肢はそれだけしか無いわけではありません。Railsチュートリアルのように簡易な認証を実装することは場合によってはありです。また、sorceryというまた別の認証ライブラリも結構人気です。 自分で全て作る場合は完全なカスタマイズが可能ですが、結局は車輪の再発明になりかねません。deviseを使えば簡単に認証機能をつくれますが、カスタマイズして行くにはdeviseの中身をよく知らないと厳しいです。sorceryは認証の部品しか提供してくれないのでカスタマイズしやすいですが、部品部品を繋げていくのは自分でするしかありません。どれが良い、どれが悪いというのではなく、どれも一長一短です。 つまり、それぞれの特性を知って、認証はどんな作りになるのかというところから決めるしかありません。オーソドックスならdeviseで十分ですし、ちょこっと認証ならsorceryの一部を使うだけでできるでしょう。凄く特殊なものになりそうなら、一から作るか、deviseまたはsorceryをforkしてカスタマイズするというのもありでしょう。 ただ、一つ注意点を。認証系はちょっとのミスがすぐに脆弱性に繋がります。認証無しでアクセスできたり、他人になりすましできたりしたら、大変危険なわけです。deviseやsorcery等のライブラリは認証の仕組みそのものに詳しい人が作成していますが、自分で作る場合は自分が認証の仕組みそのものに詳しくないと難しいでしょう。少なくとも、deviseやsorceryのソースコードを見て、何をしているのか全て把握できるぐらいではないと、自分で作るのは避けた方が良いと思います。