infisical-license-server/lib/infisical_license_server/api/auth.rb
Alexander Olofsson 243ed398a0
Initial commit
2026-02-23 18:37:34 +01:00

38 lines
849 B
Ruby

# frozen_string_literal: true
require 'base64'
require 'sinatra/base'
module InfisicalLicenseServer::API
class AuthV1 < Sinatra::Base
configure :development do
require 'sinatra/reloader'
register Sinatra::Reloader
end
enable :logging
post '/license-login' do
key = request.get_header('HTTP_X_API_KEY')
region = request.get_header('HTTP_X_REGION')
error 400, 'Missing API key' unless key
plan = InfisicalLicenseServer.config.plan_for key
error 401 unless plan
region = " (region #{region})" if region
logger.info "New auth for #{plan['plan']}#{region}"
{
token: Base64.strict_encode64(
{
auth: Time.now.to_i,
key: plan['key'],
plan: plan['plan']
}.to_json
)
}.to_json
end
end
end