Devise/最もシンプルな認証機能
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
&tag(Devise/最もシンプルな認証機能);
*目次 [#pa418ddf]
#contents
*関連ページ [#la52c80f]
-[[Devise]]
*参考情報 [#l97408fd]
*概要 [#f0db1c67]
-基本的な認証機能を実装する。
-電子メールとパスワードで登録。
-確認メールの送信なし。
*使用準備[#we170e46]
-deviseをインストールする
bundle exec rails g devise:install
-Userモデルを生成する
bundle exec rails g devise user
-migration実行
bundle exec rake db:migrate
-デフォルトのUserモデルの内容
#pre{{
class User < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :valida...
end
}}
-デフォルトのマイグレーションファイルの内容
#pre{{
class DeviseCreateUsers < ActiveRecord::Migration[5.1]
def change
create_table :users do |t|
## Database authenticatable
t.string :email, null: false, default:...
t.string :encrypted_password, null: false, default:...
## Recoverable
t.string :reset_password_token
t.datetime :reset_password_sent_at
## Rememberable
t.datetime :remember_created_at
## Trackable
t.integer :sign_in_count, default: 0, null: false
t.datetime :current_sign_in_at
t.datetime :last_sign_in_at
t.string :current_sign_in_ip
t.string :last_sign_in_ip
## Confirmable
# t.string :confirmation_token
# t.datetime :confirmed_at
# t.datetime :confirmation_sent_at
# t.string :unconfirmed_email # Only if using rec...
## Lockable
# t.integer :failed_attempts, default: 0, null: fa...
# t.string :unlock_token # Only if unlock strateg...
# t.datetime :locked_at
t.timestamps null: false
end
add_index :users, :email, unique: true
add_index :users, :reset_password_token, unique: true
# add_index :users, :confirmation_token, unique: true
# add_index :users, :unlock_token, unique: true
end
end
}}
*ビューの編集 [#a4859cdf]
-application.html.rbを編集
#pre{{
<div class="row">
<% if user_signed_in? %>
<strong><%= current_user.id %></strong> /
<%= link_to("ログアウト", destroy_user_session_pa...
<% else %>
<%= link_to("登録", new_user_registration_path) %...
<%= link_to("ログイン", new_user_session_path) %>
<% end %>
}}
-ログインしていないときは「登録 / ログイン」。ログインし...
#ref(list.png)
*処理の流れ [#s6458e18]
**登録処理 [#a194c415]
-メールアドレスとパスワードを入力し「Sign up」を押すと即...
#ref(regist.png)
**ログイン処理 [#b94949d7]
-登録済みユーザーの場合はログインできる。
#ref(login.png)
終了行:
&tag(Devise/最もシンプルな認証機能);
*目次 [#pa418ddf]
#contents
*関連ページ [#la52c80f]
-[[Devise]]
*参考情報 [#l97408fd]
*概要 [#f0db1c67]
-基本的な認証機能を実装する。
-電子メールとパスワードで登録。
-確認メールの送信なし。
*使用準備[#we170e46]
-deviseをインストールする
bundle exec rails g devise:install
-Userモデルを生成する
bundle exec rails g devise user
-migration実行
bundle exec rake db:migrate
-デフォルトのUserモデルの内容
#pre{{
class User < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :valida...
end
}}
-デフォルトのマイグレーションファイルの内容
#pre{{
class DeviseCreateUsers < ActiveRecord::Migration[5.1]
def change
create_table :users do |t|
## Database authenticatable
t.string :email, null: false, default:...
t.string :encrypted_password, null: false, default:...
## Recoverable
t.string :reset_password_token
t.datetime :reset_password_sent_at
## Rememberable
t.datetime :remember_created_at
## Trackable
t.integer :sign_in_count, default: 0, null: false
t.datetime :current_sign_in_at
t.datetime :last_sign_in_at
t.string :current_sign_in_ip
t.string :last_sign_in_ip
## Confirmable
# t.string :confirmation_token
# t.datetime :confirmed_at
# t.datetime :confirmation_sent_at
# t.string :unconfirmed_email # Only if using rec...
## Lockable
# t.integer :failed_attempts, default: 0, null: fa...
# t.string :unlock_token # Only if unlock strateg...
# t.datetime :locked_at
t.timestamps null: false
end
add_index :users, :email, unique: true
add_index :users, :reset_password_token, unique: true
# add_index :users, :confirmation_token, unique: true
# add_index :users, :unlock_token, unique: true
end
end
}}
*ビューの編集 [#a4859cdf]
-application.html.rbを編集
#pre{{
<div class="row">
<% if user_signed_in? %>
<strong><%= current_user.id %></strong> /
<%= link_to("ログアウト", destroy_user_session_pa...
<% else %>
<%= link_to("登録", new_user_registration_path) %...
<%= link_to("ログイン", new_user_session_path) %>
<% end %>
}}
-ログインしていないときは「登録 / ログイン」。ログインし...
#ref(list.png)
*処理の流れ [#s6458e18]
**登録処理 [#a194c415]
-メールアドレスとパスワードを入力し「Sign up」を押すと即...
#ref(regist.png)
**ログイン処理 [#b94949d7]
-登録済みユーザーの場合はログインできる。
#ref(login.png)
ページ名: