RailsとSafariのsessionの不具合?
safariのsessionが勝手に切れてしまうバグがある?
Rails3にてユーザー認証を実装した。
アクションsigninでは、ユーザー認証後にはmypageにリダイレクトするように実装する。
しかしURLに/signinを入力するとsessionが失効されて再度ユーザー認証を求めるようになってしまう。
これを入力するのではなくコピペやブラウザの戻るボタンだとsessionは失効されずにmypageが表示される。
なぜかwebインスペクタを起動してると現象は発生しない。
Safari内の履歴やキャッシュの扱いの問題のような気がするけど、原因が特定できずにイマイチすっきりしないのでメモ。
def signin
if session[:user_id] == nil
if request.post?
if User.authenticate(params[:username], params[:password])
session[:user_id] = User.authenticate(params[:username], params[:password]).id
redirect_to :action => session[:intended_action], :controller => session[:intended_controller]
else
render :text => "error"
end
end
else
redirect_to "/mypage"
end
end
でもまあなんやかんやでユーザー認証みたいなものは作れた
https://shrouded-falls-3859.herokuapp.com/foods
これでやっとウェブサービスに必要な最低限の道具を手にしたような気持ち。
DEVICEとかCANCANやtwitter authを使えばもっとしっかりと作れるかな?
次は画像のアップロードとかグラフィカルな実装をがんばう 眠 (¦3[ スヤァ.. ]