Advertisement
Guest User

Untitled

a guest
Jun 5th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.03 KB | None | 0 0
  1. #MODEL
  2.  
  3. require 'bcrypt'
  4.  
  5. class User
  6. include DataMapper::Resource
  7.  
  8. property :id, Serial
  9. property :email, String
  10. property :name, String
  11. property :username, Text
  12. property :password_digest, Text
  13.  
  14. has n, :peeps, :through => Resource
  15.  
  16. def password=(password)
  17. self.password_digest = BCrypt::Password.create(password)
  18. end
  19.  
  20. end
  21.  
  22. .
  23. .
  24. .
  25.  
  26. #CONTROLLER
  27.  
  28. class Chitter < Sinatra::Base
  29.  
  30. get '/login' do
  31. erb :login
  32. end
  33.  
  34. post '/login' do
  35. user = User.first(username: params[:username])
  36. if BCrypt::Password.new(user.password_digest) == params[:password]
  37. session[:user] = user.id
  38. redirect '/loggedin'
  39. else
  40. flash.now[:fail] = 'Password incorrect - please try again'
  41. erb :login
  42. end
  43. end
  44.  
  45. end
  46.  
  47. .
  48. .
  49. .
  50.  
  51. #VIEW
  52.  
  53. #login.erb
  54.  
  55. <form action='/login' method='post'>
  56. User Handle: <input type="text" name="username" value="username">
  57. Password: <input type="password" name="password" value="password">
  58. <input type="submit" name="Login" value="Login">
  59. </form>
  60.  
  61. <% if flash[:fail] %>
  62. <%= flash[:fail] %>
  63. <% end %>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement