class Oidc::AccessToken

def initialize(attributes = {})

def initialize(attributes = {})
  super
  @token_type = :bearer
end

def resource_request

def resource_request
  res = yield
  case res.status
  when 200
    res.body.with_indifferent_access
  when 400
    raise BadRequest.new('API Access Faild', res)
  when 401
    raise Unauthorized.new('Access Token Invalid or Expired', res)
  when 403
    raise Forbidden.new('Insufficient Scope', res)
  else
    raise HttpError.new(res.status, 'Unknown HttpError', res)
  end
end

def to_mtls(attributes = {})

def to_mtls(attributes = {})
  (required_attributes + optional_attributes).each do |key|
    attributes[key] = self.send(key)
  end
  MTLS.new attributes
end

def userinfo!(params = {})

def userinfo!(params = {})
  hash = resource_request do
    get client.userinfo_uri, params
  end
  ResponseObject::UserInfo.new hash
end