忍者ブログ
  • 2025.05
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 2025.07
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

【2025/06/08 20:17 】 |
Railsでログインページ

セッションは、sessionというローカル変数を使用する。
ハッシュなので、session[:key]、session[:key]=...という形式
消すときはsession.delete(:key)

 

ログイン機能など
    before_filter :メソッド名, :except => [ログイン無しで使用できるメソッドの配列]
  を記述。
  ログイン認証成功時に、セッションにデータを書き込む。
  上で書いたフィルタメソッドで
    ローカル変数 = session[キー]
    if ローカル変数
      return ローカル変数
    else
      redirect_to ログインページURL
    end
  等のように書く。
  これによって、認証が必要な処理へ未認証状態で飛んだ場合にログインページが表示される。
  ログインページからの認証終了時に元の処理に戻るには他の手法が必要
  フィルタからログインページへ情報を渡す必要がある場合は方法を考えないといけない。
  
  ローカル変数には、認証成功時にセッションに書いたデータが取得できるので、
  必要に応じて処理を行えばいい。

  あと、たくさんのコントローラーでログイン処理を共通で行うのであれば、
  フィルタをクラス化する方が良いかもしれない。
  クラスを使う場合は
    around_filter フィルタインスタンス, :except => [ログイン無しで使用できるメソッドの配列]
  フィルタはbefore、afterと2つのメソッドを作成する。
  コントローラが渡されるので、そのための仮引数を用意。
  beforeはコントローラ動作開始前、afterは動作完了後。
  
  ログアウト時に、セッションの情報を消すなど。


ページ表示時にはログイン情報があることをこの機能で保証して、
レイアウト上にログイン情報を表示するとか。
 

PR
【2010/12/14 18:43 】 | 仕事、技術 | 有り難いご意見(0) | トラックバック()
<<クロスキーボード | ホーム | rails3でlink_to_remoteが使えない>>
有り難いご意見
貴重なご意見の投稿














虎カムバック
トラックバックURL

<<前ページ | ホーム | 次ページ>>