Method: CloudKit::OpenIDFilter#logout

Defined in:
lib/cloudkit/openid_filter.rb

#logout(request) ⇒ Object



57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/cloudkit/openid_filter.rb', line 57

def logout(request)
  user_uri = request.session.delete('user_uri')
  result   = @users.get(user_uri)
  user     = result.parsed_content
  user.delete('remember_me_token')
  user.delete('remember_me_expiration')
  json = JSON.generate(user)
  @users.put(user_uri, :etag => result.etag, :json => json)

  request.env[CLOUDKIT_AUTH_KEY] = nil
  request.flash['info'] = 'You have been logged out.'
  response = Rack::Response.new(
    [],
    302,
    {'Location' => request., 'Content-Type' => 'text/html'})
  response.delete_cookie('remember_me')
  response.finish
end