OpenIDで認証してみた
参考:http://codezine.jp/a/article/aid/2514.aspx?p=2
砂場:http://mumoshu.com/openid/todos
ApplicationController#authorizeで、セッションがある時は認証飛ばさないと、認証されてる状態でtodos/newやってもtodos/indexに行っちゃうような。
というわけで、こう修正したら、認証済みの場合newとかできるようになった。
def authorize return if session[:user_id] flash[:notice] = "Please log in" session[:jumpto] = request.parameters redirect_to(:controller => "/login", :action => "index") end
お手軽にログアウトできるように、ログイン時にlogin/logoutへのリンクを表示するようにしてみた。
# todos.html.erb <%= yield %> <% if session[:user_id] %> <%= link_to 'Logout', { :controller => :login, :action => :logout } %> <% end $> </body>
同じくtodos.html.erbでエラー表示と、ログイン時の挨拶も追加してみた。
<body> <p style="color: green"><%= flash[:notice] %></p> <p style="color: red"><%= flash[:error] %></p> <% if session[:user_id] %> <p style="color: blue"><%= "Hi, #{session[:user_id].identity_url}!" %></p> <% end %> <%= yield %>