Class: RbSSO::Server

Inherits:
Object
  • Object
show all
Defined in:
lib/rbsso/server.rb

Instance Method Summary collapse

Constructor Details

#initialize(secret) ⇒ Server

Returns a new instance of Server.



8
9
10
11
12
13
14
# File 'lib/rbsso/server.rb', line 8

def initialize(secret)
  if !secret || secret !~ /[0-9a-f]{64}/i
    raise ArgumentError, "seed MUST be 32 bytes, hex encoded string"
  end
  seed_binary = [secret].pack('H*')
  @key = RbNaCl::SigningKey.new seed_binary
end

Instance Method Details

#ticket(user:, service:, domain:, nonce: nil) ⇒ Object



16
17
18
19
20
21
22
23
# File 'lib/rbsso/server.rb', line 16

def ticket(user:, service:, domain:, nonce: nil)
  auth = RbSSO::Authentication.new user: user,
    service: service,
    domain: domain,
    nonce: nonce
  ticket = RbSSO::Ticket.sign auth, key
  return ticket.to_base64
end

#verify_keyObject



25
26
27
# File 'lib/rbsso/server.rb', line 25

def verify_key
  key.verify_key.to_s.unpack('H*').first
end