Skip to content

Instantly share code, notes, and snippets.

@Carmer
Last active June 1, 2016 14:44
Show Gist options
  • Select an option

  • Save Carmer/1a831903989fa2405b8d64a1d5425a2a to your computer and use it in GitHub Desktop.

Select an option

Save Carmer/1a831903989fa2405b8d64a1d5425a2a to your computer and use it in GitHub Desktop.

User model

  • Add password_digest to user model

rails g migration AddPasswordDigestTOUser rake db:migrate

Routes

get '/login',           to: 'sessions#new'
post '/login',        to: 'sessions#create'
delete '/logout',   to: 'sessions#destroy'

session_controller

def new
end

def create
  user = User.find_by(username: params[:session][:username])
  if user && user.authenticate(params[:session][:password])
    session[:user_id] = user.id
    redirect_to user_path(user)
  else
     flash.now[:errors] = "Invalid Login"
     render :new
  end
end

def destroy
  session.clear
  redirect_to root_path
end

Session new.html.erb

<div id="errors">
  <%= flash[:errors] %>
</div>

<%= form_for(:session, url: login_path) do |f| %>
  <%= f.text_field :username %>
  <%= f.password_field :password %>
  <%= f.submit "Login" %>
<% end %>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment