Skip to content

Instantly share code, notes, and snippets.

@mayfer
Created April 23, 2015 18:34
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mayfer/ae9deec2590df4cb8018 to your computer and use it in GitHub Desktop.
Save mayfer/ae9deec2590df4cb8018 to your computer and use it in GitHub Desktop.
Sinatra login/logout
# Homepage (Root path)
enable :sessions
helpers do
def current_user
begin
@current_user = User.find(session["user_id"].to_i)
# @current_user = User.find(response.cookies["user_id"].to_i)
rescue
@current_user = nil
end
end
end
get '/' do
erb :index
end
get '/login' do
erb :login
end
post '/login' do
users = User.where(email: params[:username], password: params[:password])
if users.length == 1
user = users.first
# response.set_cookie("user_id", value: user.id, expires: Time.now + 60*60*24*365 )
session["user_id"] = user.id
redirect '/'
else
@error = true
erb :login
end
end
get '/signup' do
erb :signup
end
post '/signup' do
user = User.new(email: params[:username], password: params[:password])
user.save
redirect '/login'
end
get '/logout' do
session.clear
# response.set_cookie("user_id", value: "", expires: Time.now - 100 )
redirect '/'
end
get '/messages' do
@messages = Message.all
erb :'messages/index'
end
get '/messages/new' do
@message = Message.new
erb :'messages/new'
end
get '/messages/:id' do
@message = Message.find params[:id]
erb :'messages/show'
end
post '/comments' do
message_id = params[:message_id]
end
post '/messages/:id/comments' do
end
post '/messages' do
@message = Message.new(
title: params[:title],
content: params[:content],
author: params[:author]
)
if @message.save
redirect '/messages'
else
erb :'messages/new'
end
end
<h1>Login</h1>
<% if @error %>
<div class="error">Login failed.</div>
<% end %>
<form action="/login" method="post">
<input type="text" name="username" placeholder="Username" />
<input type="password" name="password" placeholder="Password" />
<input type="submit" name="button" value="Login" />
</form>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment