Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #MODEL
- require 'bcrypt'
- class User
- include DataMapper::Resource
- property :id, Serial
- property :email, String
- property :name, String
- property :username, Text
- property :password_digest, Text
- has n, :peeps, :through => Resource
- def password=(password)
- self.password_digest = BCrypt::Password.create(password)
- end
- end
- .
- .
- .
- #CONTROLLER
- class Chitter < Sinatra::Base
- get '/login' do
- erb :login
- end
- post '/login' do
- user = User.first(username: params[:username])
- if BCrypt::Password.new(user.password_digest) == params[:password]
- session[:user] = user.id
- redirect '/loggedin'
- else
- flash.now[:fail] = 'Password incorrect - please try again'
- erb :login
- end
- end
- end
- .
- .
- .
- #VIEW
- #login.erb
- <form action='/login' method='post'>
- User Handle: <input type="text" name="username" value="username">
- Password: <input type="password" name="password" value="password">
- <input type="submit" name="Login" value="Login">
- </form>
- <% if flash[:fail] %>
- <%= flash[:fail] %>
- <% end %>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement