Sha256: 4b43ca7d2571ec90b709284b827c39aba94e844ed7451281c4e2936a963a3446
Contents?: true
Size: 1.98 KB
Versions: 2
Compression:
Stored size: 1.98 KB
Contents
require 'omniauth' require 'faraday' module OmniAuth module Strategies class Linnworks include OmniAuth::Strategy args [:application_id, :application_secret] option :name, 'linnworks' option :application_id, nil option :application_secret, nil option :client_options, { :tracking => nil, :authorize_url => '/Authorization/Authorize', :site => 'http://apps.linnworks.net' } def request_phase # rubocop:disable MethodLength authorize_url = "#{options.client_options.site}#{options.client_options.authorize_url}/#{options.application_id}" authorize_url += "?tracking=#{options.client_options.tracking}" if options.client_options.tracking redirect authorize_url rescue ::Timeout::Error => e fail!(:timeout, e) rescue ::Net::HTTPFatalError, ::OpenSSL::SSL::SSLError => e fail!(:service_unavailable, e) end def callback_phase # rubocop:disable MethodLength @response = Faraday.post('https://api.linnworks.net//api/Auth/AuthorizeByApplication', {"applicationId" => options.application_id, "applicationSecret" => options.application_secret, "token" => request.params['token']}) fail!(:error, Exception.new(JSON.parse(@response.body))) unless @response.success? super rescue ::Timeout::Error => e fail!(:timeout, e) rescue ::Net::HTTPFatalError, ::OpenSSL::SSL::SSLError => e fail!(:service_unavailable, e) rescue ::OAuth::Unauthorized => e fail!(:invalid_credentials, e) end uid { raw_info['Id'].to_s } info { raw_info } credentials { {"token" => raw_info['Token'] } } private attr_reader :response def raw_info @raw_info ||= JSON.parse(response.body) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
omniauth-linnworks-0.1.2 | lib/omniauth/strategies/linnworks.rb |
omniauth-linnworks-0.1.1 | lib/omniauth/strategies/linnworks.rb |