TechBlogSideCIのエンジニアによる技術ブログです。今回はありそうでなかなか情報が見つからない、Railsでモデルを持たずにさくっとユーザ認証をする話をしようと思います。モデルを持たずにユーザ認証を実装するのは、なんと言っても既存のユーザ認証の仕組みとバッティングしにくいのがメリットです。deviseを使うといろいろとイイカンジに設定してくれるのでとても便利ですが、別の管理のユーザ認証の仕組みを追加しようとしたりすると嵌まりがちです。ここで原点に立ち返って、「devise使わないでもいいのでは?」となり、「そもそもモデル要らないのでは」となったのが本記事を書いたきっかけになります。社内OAuthアカウントだけ認証できればいいから出来るだけ簡単に作りたい、といった場合にはモデルはなくても十分機能する場合も多いのではないでしょうか。本記事では、omniauthのroutesやAPIキーの設定などの基本的な設定を済ませた前提で、モデルを持たないユーザ認証の仕組みを実現するControllerの書き方をご紹介いたします。SessionsControllerを作ります。とバッティングしないように、namespaceを明示的に分けます。SessionsControlleromniauthのcallbackが帰ってくるcreateアクションでは、セッションに使いそうなユーザ情報を雑に入れておきます。このとき「社内アカウントであるか」をチェックします。今回はメールアドレスが独自ドメインのものかを確かめるようにしていますが、ここは用途に合わせて変更して頂くのが良いかと思います。認証済みであるかどうかを確認するメソッドを定義します。してログイン画面にリダイレクトします。情報を取得するヘルパメソッドを定義します。同じようなイメージです。ヘルパーメソッドも用意しておくと使い勝手が良いかと思います。%>さいごにやってみれば何の変哲も無い当たり前の超絶簡単なユーザ認証ですが、omniauthってどうやって使うんだっけ、と調べているとどうしてもdeviseを使うように流されてしまいがちのように思います。用途によってはRailsとは言ってもdeviseに頼らず、モデルに縛られずに原点に立ち返ってセッションのみでさくっとユーザ認証を済ませてしまうのもいいのではないでしょうか。現在アクトキャットでは一緒に働いて頂けるメンバーを募集しています。RSSはてなブログで読者になるスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。