class DMAO::JWT::API::TokenIssuer
Public Class Methods
new(issuer_name)
click to toggle source
# File lib/dmao/jwt/api/token_issuer.rb, line 13 def initialize issuer_name @issuer_name = issuer_name end
Public Instance Methods
request_token(subject, institution_id, roles)
click to toggle source
# File lib/dmao/jwt/api/token_issuer.rb, line 17 def request_token subject, institution_id, roles if @issuer_name.nil? || @issuer_name.empty? raise DMAO::JWT::API::Errors::InvalidJWTIssuer.new("JWT Issuer not set for token generator") end custom_claims = { institution_id: institution_id, roles: roles } request_attributes = { subject: subject, custom_claims: custom_claims } begin response = DMAO::JWT::API::Base.api["#{@issuer_name}/tokens"].post request_attributes.to_json rescue RestClient::NotFound raise DMAO::JWT::API::Errors::InvalidJWTIssuer rescue RestClient::UnprocessableEntity, RestClient::InternalServerError raise DMAO::JWT::API::Errors::UnableToIssueToken end JSON.parse(response.body)["token"] end