Advertisement
Guest User

Untitled

a guest
Mar 9th, 2016
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | None | 0 0
  1. class Api::V1::SessionsController < ApplicationController
  2. def create
  3. # Gather params
  4. user_password = params[:session][:password] if params[:session]
  5. user_email = params[:session][:email] if params[:session]
  6.  
  7. # Validations
  8. if request.format != :json
  9. render status: 406, json: { errors: 'The request must be made in JSON.' }
  10. return
  11. end
  12.  
  13. if user_email.nil? or user_password.nil?
  14. render status: 400, json: { errors: 'The request MUST contain the user email and password.' }
  15. return
  16. end
  17.  
  18. # Authentication
  19. user = User.find_by(email: user_email)
  20.  
  21. if user
  22. if user.valid_password?(user_password)
  23. sign_in user, store: false
  24. user.reset_authentication_token!
  25.  
  26. render status: 200, json: user, serializer: SessionSerializer, root: :user
  27. else
  28. render status: 401, json: { errors: 'Invalid email or password.' }
  29. end
  30. else
  31. render status: 401, json: { errors: 'Invalid email or password.' }
  32. end
  33. end
  34.  
  35. def destroy
  36. user = User.find_by(auth_token: params[:id])
  37. user.generate_authentication_token!
  38. user.save
  39.  
  40. head 204
  41. end
  42. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement