Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Para autenticar solo en métodos particulares de los controladores, hay que definir al inicio:
- # before_action :authenticate_request, only: [:new, :create, :edit, :save]
- # En lugar o en adición a "create", "edit", etc. deberá ir el nombre del método tal cual esta definido en su controlador.
- class ApplicationController < ActionController::API
- #Requiere dos gemas Typhoeus y JSON
- require 'json'
- # before_action :authenticate_request
- # Lo de arriba es en dado caso quisieran hacerlo global, que cualquier request debiera ser autenticada
- attr_reader :current_user
- private
- def authenticate_request
- if request.headers['Authorization'].present?
- @token = request.headers['Authorization'].split(' ').last
- @current_user = auth_api(@token)
- render json: {error: 'Not Authorized'}, status: 401 unless @current_user
- else
- render json: {error: 'No token in headers'}
- end
- end
- def auth_api(token)
- response = Typhoeus.get("http://pseesapiauth.herokuapp.com/check?token="+token)
- user = JSON.parse(response.body)['user']
- if user
- return user
- else return nil
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement