認証系のgemをちょっと見てみた

はじめに


だいたいのwebサービスにはユーザー登録をしてはじめて使用することが多いと思います

ご多分にもれずに、これから実装しようとしたものでメンバースキルを鑑みるとRailsという形ですすむことになりました。

では、Railsでアプリを書くときに認証系のgemって、今は何が使えるものだろうかということを軽く見てみました。

# ちょっと実装してよと軽く言われるものの困ったものですorz

RubyToolboxを眺める


自分の個人内の観測範囲でよく聞くもの

  • warden
  • devise
  • Authlogic
  • Sorcery
  • doorkeeper
  • OmniAuth

# provider提供も関係無く書いてますが、話と毛色が違う感あるのでこの後は出てきません

メンテ厳しいらしいもの


この2つの模様

  • Authlogic
  • Sorcery(Currently Sorcery project is not actively maintained.という文章がREADMEにあった)

PR眺める限り、Authlogicは対応させようと頑張っている模様 Sorceryは、ちょっと厳しそうかな(とはいえ、一応動く&issueとPRをあげたら対応自体はしてくれる模様)

devise&warden


changelog見ると、
4.0.0rc1からRails5に対応していました
流石ですね。

# が、多機能で便利でいいのですが癖が強いのとdeviseのレールから外れた瞬間悲惨な目に遭うので避けたいところ

他に無いか?


個人的に良さそうかなと思ったのは、monbanですかね。
(ちょっとgithubのスター数が少ないのは気になりますが・・・)

Rails使ってるなぁと思ってみたら、殆どconcern(helper)と初期ロード&設定(railtie&configure)だけだった模様
案外Railsのアップデート影響も少なそうな印象でした。

実装や設定内容を読む限り、拡張の幅も広いので好印象でした
実際、Rails5でカスタム実装してみましたが問題なく認証させることができました

肌感&経験上ですが、認証機能自身はサービスによって独自の仕様、または既存機能との併用となることが多いので
拡張しやすいgemの方が対応のさせやすさ、メンテナンスさせやすいほうがやりやすいかなと思ってます

そういう意味では、(余計な機能が無いという意味で)軽量かつ、拡張可能、機能の置き換え可能なmonbanはいいなと思いました

# ぶっちゃけ、monbanカワイイよってことだけが言いたかったw