acts_as_loginをアレンジして使ってるんだけど、ログイン部分をhttpsにして安全性を高めたくなった。ちなみに、Railsのバージョンは1.2.6でちょっと古い。
login.rhtmlのフォーム生成部分を少しいじる。
false, :protocol => 'https://' do >
これで、とりあえずhttpsに切り替わる。が、切り替わりっぱなしになるので、controllerで元に戻す。
def login
return unless request.post?
self.current_user = User.authenticate(params[:login], params[:password])
if logged_in?
if params[:remember_me] == "1"
self.current_user.remember_me
cookies[:auth_token] = { :value => self.current_user.remember_token , :expires => self.current_user.remember_token_expires_at }
end
request.env['HTTPS'] = nil
redirect_back_or_default(:controller => 'home', :action => 'index')
flash[:notice] = _("Logged in successfully")
else
flash[:warning] = _("Logged in faild")
end
end
request.env['HTTPS'] = nilとしているところで、httpに戻る。