Sha256: 8ac58c7c0a99ab648c117b7715a7a7cdd9773e9a09c3ecc4d789bb2be4db014d
Contents?: true
Size: 1.36 KB
Versions: 5
Compression:
Stored size: 1.36 KB
Contents
# frozen_string_literal: true require 'addressable/uri' require 'faraday' module Spearly module Auth class Token attr_reader :data, :token def initialize(token) @token = token end def method_missing(name, *_args) @data[name.to_s] end def info token_info_uri = "#{ENV['SPEARLY_API_URL']}/oauth/token/info" url = Addressable::URI.parse(token_info_uri).normalize.to_s client = Faraday.default_connection res = client.get(url, nil, 'Accept' => 'application/vnd.spearly.v2+json', 'Authorization' => @token) return unless res.status == 200 @data = JSON.parse(res.body) end def revoke(params) token_revoke_uri = "#{ENV['SPEARLY_API_URL']}/oauth/revoke" url = Addressable::URI.parse(token_revoke_uri).normalize.to_s client = Faraday.default_connection bearer_token = @token.gsub(/^Bearer /i, '') client.post(url, { client_id: params[:client_id], client_secret: params[:client_secret], token: bearer_token }) end def to_json(*_args) @data.to_json end def as_json @data.as_json end end end end
Version data entries
5 entries across 5 versions & 1 rubygems