Sha256: bfcd7cc8463c5680557feac4894ddf9c70764a580c52d910f9147d9dd105c50f
Contents?: true
Size: 1.13 KB
Versions: 9
Compression:
Stored size: 1.13 KB
Contents
module Spontaneous::Rack::Back class Login < Base include TemplateHelpers def set_authentication_cookie(key) response.set_cookie(AUTH_COOKIE, { :value => key.key_id, :path => '/', :secure => request.ssl?, :httponly => true, :expires => (Time.now + SESSION_LIFETIME) }) end def unset_authentication_cookie response.delete_cookie(AUTH_COOKIE, { :path => '/', :secure => request.ssl?, :httponly => true }) end post "/login" do login = params[:user][:login] password = params[:user][:password] origin = "#{NAMESPACE}#{params[:origin]}" if key = Spontaneous::Permissions::User.authenticate(login, password, env["REMOTE_ADDR"]) set_authentication_cookie(key) if request.xhr? json({ :key => key.key_id, :redirect => origin }) else redirect origin, 302 end else show_login_page( :login => login, :failed => true ) end end delete "/logout" do unset_authentication_cookie 401 end end end
Version data entries
9 entries across 9 versions & 1 rubygems