require 'rubygems'
require 'sinatra'
require 'json'
configure do
enable :sessions
end
get '/' do
headers['Cache-Control'] = 'max-age=60, must-revalidate'
PAGE
end
get '/userinfo' do
if session[:user]
JSON.dump(:user => session[:user])
else
halt 401
end
end
get '/login' do
session[:user] = 'rock'
redirect '/'
end
get '/logout' do
session.clear
redirect '/'
end
PAGE = %(
<html>
<head>
<title>Hi</title>
<script src='http://www.scramble.com/javascripts/jquery-1.3.1.js'></script>
<script>
$(function() {
$.getJSON('/userinfo', function(data) {
$('h1').text('Hi ' + data.user);
$('#nav .login-control').attr('href', '/logout').html('logout');
})
})
</script>
</head>
<body>
<h1>Hi</h1>
<div id="nav">
<a href="/login" class='login-control'>Login</a>
</div>
<p>Non session specific content</p>
</body>
</html>
)