class Auth::Service::Authenticator::Manager
Public Class Methods
authenticate(email, password)
click to toggle source
Authenticate user
# File lib/auth/service/authenticator.rb, line 16 def self.authenticate(email, password) self.configure uri = URI.parse("#{@@auth_url}") http = Net::HTTP.new(@@auth_url, @@auth_port) request = Net::HTTP::Post.new("/api/v1/authenticate") request.add_field('Content-Type', 'application/json') request.body = {'email': email, 'password': password}.to_json response = http.request(request) result = case response when Net::HTTPSuccess then { user: JSON.parse(response.body), status: response.code, message: '' } when Net::HTTPClientError then { error: 'usuario ou senha inválidos.', status: response.code, message: response.message } when Net::ReadTimeout then { error: 'timeout', status: response.code, message: response.message } else { error: 'erro inesperado. tente novamente mais tarde.', status: '422', message: '' } end return result end
logout(token)
click to toggle source
# File lib/auth/service/authenticator.rb, line 59 def self.logout(token) uri = URI.parse("#{@@auth_url}") http = Net::HTTP.new(@@auth_url, @@auth_port) request = Net::HTTP::Delete.new("/api/v1/authenticate") request.add_field('Content-Type', 'application/json') request.add_field('Authorization', token) response = http.request(request) result = case response when Net::HTTPNoContent then { status: response.code, message: 'success', success: true } when Net::HTTPClientError then { error: 'Token invalido.', status: response.code, message: response.message } when Net::ReadTimeout then { error: 'timeout', status: response.code, message: response.message } else { error: 'erro inesperado. tente novamente mais tarde.', status: '422', message: '' } end return result end
validate_token(token)
click to toggle source
# File lib/auth/service/authenticator.rb, line 38 def self.validate_token(token) uri = URI.parse("#{@@auth_url}") http = Net::HTTP.new(@@auth_url, @@auth_port) request = Net::HTTP::Post.new("/api/v1/validate") request.add_field('Content-Type', 'application/json') request.add_field('Authorization', token) response = http.request(request) result = case response when Net::HTTPSuccess then { user: JSON.parse(response.body), status: response.code, message: '' } when Net::HTTPClientError then { error: 'token invalido.', status: response.code, message: response.message } when Net::ReadTimeout then { error: 'timeout', status: response.code, message: response.message } else { error: 'erro inesperado. tente novamente mais tarde.', status: '422', message: '' } end return result end
Private Class Methods
configure()
click to toggle source
Setup auth server configuration
# File lib/auth/service/authenticator.rb, line 82 def self.configure if @@auth_url == '' begin # Load app configuration for server URI in you rails app config = YAML.load_file('config/authenticator_config.yml') @@auth_url = config['url'] @@auth_port = config['port'] rescue # default configuration @@auth_url = 'localhost' @@auth_port = '4000' end end end