Rails/認証
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
&tag(Rails/認証);
*目次 [#y9be1089]
#contents
*関連ページ [#a845864c]
*参考情報 [#x5ebd43e]
*ベーシック認証を実装する [#i0537ea2]
--[[Action Controller の概要 | Rails ガイド:http://railsg...
-管理者用のコントローラーで実装する
#pre{{
class AdminController < ApplicationController
before_action :authenticate
def authenticate
# BASIC認証
authenticate_or_request_with_http_basic do |name, pas...
name == "testuser2" && password == "testpass2"
end
end
def index
end
end
}}
*ダイジェスト認証を実装する [#kf575bed]
-[[Action Controller の概要 | Rails ガイド:http://railsgu...
-authenticate_or_request_with_http_basicがauthenticate_or...
#pre{{
class AdminsController < ApplicationController
USERS = { "lifo" => "world" }
before_action :authenticate
private
def authenticate
authenticate_or_request_with_http_digest do |userna...
USERS[username]
end
end
end
}}
-パスワードはハッシュ化されたものでもいいらしい。
--[[Basic認証とDigest認証についての基礎知識 - チャレンジ...
--[[ActionController::HttpAuthentication::Digest:http://a...
#pre{{
require 'digest/md5'
class PostsController < ApplicationController
REALM = "SuperSecret"
USERS = {"dhh" => "secret", #plain text password
"dap" => Digest::MD5.hexdigest(["dap",REALM,"s...
before_action :authenticate, except: [:index]
def index
render plain: "Everyone can see me!"
end
def edit
render plain: "I'm only accessible if you know the pa...
end
private
def authenticate
authenticate_or_request_with_http_digest(REALM) do ...
USERS[username]
end
end
end
}}
*複数の認証を組み合わせる [#w6acbb9e]
-before_actionで認証を分割するか、一つの認証メソッドで失...
**IPアドレス認証と組み合わせる [#i61eb54d]
-[[ActiveAdminでのBasic認証+アルファ - 徹夜で日記:https:/...
=>例外が必要なのではなくて、おそらくredirect_to '/' した...
**足跡機能の実装 [#d8bfeb3c]
-[[before_filterの実行順番について - 技術めも:http://d.ha...
*Tips [#y832ff8f]
**before_filterとbefore_actionの違いって? [#b2424dac]
-[[「壊れてねぇなら直すな」という発想はRailsにはないのか...
-before_actionを使えばいいらしい。
**複数のbefore_filterを適用する [#m363a8d6]
-controllerに複数列挙すれば順次適用される。
-途中でredirect_toすればそこで処理が止まる(return falseで...
--[[Railsのbefore_filterとメソッド返り値 - web-k.log:http...
--[[Railsでbefore_filter/before_actionがアクションを中止...
-books_controller.rb
#pre{{
class BooksController < ApplicationController
end
}}
終了行:
&tag(Rails/認証);
*目次 [#y9be1089]
#contents
*関連ページ [#a845864c]
*参考情報 [#x5ebd43e]
*ベーシック認証を実装する [#i0537ea2]
--[[Action Controller の概要 | Rails ガイド:http://railsg...
-管理者用のコントローラーで実装する
#pre{{
class AdminController < ApplicationController
before_action :authenticate
def authenticate
# BASIC認証
authenticate_or_request_with_http_basic do |name, pas...
name == "testuser2" && password == "testpass2"
end
end
def index
end
end
}}
*ダイジェスト認証を実装する [#kf575bed]
-[[Action Controller の概要 | Rails ガイド:http://railsgu...
-authenticate_or_request_with_http_basicがauthenticate_or...
#pre{{
class AdminsController < ApplicationController
USERS = { "lifo" => "world" }
before_action :authenticate
private
def authenticate
authenticate_or_request_with_http_digest do |userna...
USERS[username]
end
end
end
}}
-パスワードはハッシュ化されたものでもいいらしい。
--[[Basic認証とDigest認証についての基礎知識 - チャレンジ...
--[[ActionController::HttpAuthentication::Digest:http://a...
#pre{{
require 'digest/md5'
class PostsController < ApplicationController
REALM = "SuperSecret"
USERS = {"dhh" => "secret", #plain text password
"dap" => Digest::MD5.hexdigest(["dap",REALM,"s...
before_action :authenticate, except: [:index]
def index
render plain: "Everyone can see me!"
end
def edit
render plain: "I'm only accessible if you know the pa...
end
private
def authenticate
authenticate_or_request_with_http_digest(REALM) do ...
USERS[username]
end
end
end
}}
*複数の認証を組み合わせる [#w6acbb9e]
-before_actionで認証を分割するか、一つの認証メソッドで失...
**IPアドレス認証と組み合わせる [#i61eb54d]
-[[ActiveAdminでのBasic認証+アルファ - 徹夜で日記:https:/...
=>例外が必要なのではなくて、おそらくredirect_to '/' した...
**足跡機能の実装 [#d8bfeb3c]
-[[before_filterの実行順番について - 技術めも:http://d.ha...
*Tips [#y832ff8f]
**before_filterとbefore_actionの違いって? [#b2424dac]
-[[「壊れてねぇなら直すな」という発想はRailsにはないのか...
-before_actionを使えばいいらしい。
**複数のbefore_filterを適用する [#m363a8d6]
-controllerに複数列挙すれば順次適用される。
-途中でredirect_toすればそこで処理が止まる(return falseで...
--[[Railsのbefore_filterとメソッド返り値 - web-k.log:http...
--[[Railsでbefore_filter/before_actionがアクションを中止...
-books_controller.rb
#pre{{
class BooksController < ApplicationController
end
}}
ページ名: