No commit activity in last 3 years
No release in over 3 years
Really simple authentication scaffold generator for Rails
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Runtime

~> 3.0.0
 Project Readme

S6x(Six) Auth Scaffold Generator¶ ↑

Sorry, Japanese only.

「S6x(Six) Auth Scaffold Generator」(以下、s6x_auth_scaffold)はRails 3.0向けのシンプルな認証機能をフルスクラッチで記述するためのgeneratorです。s6x_auth_scaffoldの目的はこれからRuby on Railsで開発する方がRailsにおける認証の概要をソースコードレベルで理解することを手助けすることです。

s6x_auth_scaffoldは以下の機能を実現するソースコードを自動生成します。

  • ログイン画面(/login)でログインIDとパスワードで認証。

  • ユーザのモデル名はUserやEmployeeなど自由に指定できる。

  • ログイン後はWelcome画面(root_url)を表示。

    • Welcome画面のURLを指定できる。

  • /logoutにアクセスするとログアウトできる。

  • ログアウトするとログイン画面を表示。

    • このときログアウトした旨を表示。

ただし、なるべく簡単に理解できるようなソースコードを自動生成するために以下の制限があります。

  • ユーザの作成はWebではできない。

s6x_auth_scaffoldで基本を学んだ後は自動生成された認証機能をカスタマイズしてもよいですが、ぜひDevise、AuthLogicなどの認証ライブラリの導入を検討してみてください。

ライセンス¶ ↑

MITライセンス

必要なソフトウェア¶ ↑

  • Ruby 1.9.2-p290以降

  • Ruby on Rails 3.0.10 (3.1以降では動作確認をしていない)

インストール方法¶ ↑

gem install s6x_auth_scaffold_generator

使用方法¶ ↑

新しいRailsプロジェクトを作成してデータベースの設定などを行います。

$ rails new auth_demo
$ cd auth_demo
(Gemfileに以下を追加)
gem 's6x_auth_scaffold_generator'
$ bundle install
(DBの設定など)
$ rake db:create:all

s6x_auth_scaffoldで認証まわりのソースコードを自動生成します。

$ rails generate s6x_auth_scaffold User

rake db:migrateを実行してusersテーブルを作成します。

$ rake db:migrate

ついでに単体テストも実行します。

$ rake

動作確認をするためにユーザを作成します。ここではログインIDがadmin、パスワードがadminのユーザを作成しています。

$ rails console
> User.create!(login: "admin", password: "admin")
> quit

サーバを起動して動作を確認します。/loginにアクセスしてログインします。「Welcome aboard」が表示されればs6x_auth_scaffoldがただしく動作しています。

$ rails server
(Webブラウザでlocalhost:3000/loginにアクセスする)

サーバを停止させます。

これからやってほしいこと¶ ↑

自動再生されたファイルや変更されたファイルを確認してください。ソースコードの量が少ないので安心してください。認証に最低限必要な機能が実装されています。

また、単体テストも記述してあるため、今後の開発の参考になるはずです。

一通り確認できたらWelcome画面(Welcome#index)を作成してみてください。Welcome画面にはログアウトのボタンやログインIDを表示してみてください。このとき、RAILS_ROOT/public/index.htmlを削除することを忘れないでください。

<p><%= current_user.login %> <%= link_to "ログアウト", logout_path %></p>

最後に氏名(name)、ふりがな(furigana)、メールアドレス(email)などのユーザの情報をUserモデルに追加してアプリケーションの要件を満たすように改良してみてください。