Module: Poms::Api::Auth

Defined in:
lib/poms/api/auth.rb

Overview

This module can be used to create an authentication header for the Poms API.

see: wiki.publiekeomroep.nl/display/npoapi/Algemeen

Class Method Summary collapse

Class Method Details

.sign(request, clock = Time.now) ⇒ Object

Parameters:

  • request

    The prepared request

  • credentials

    The Poms API credentials

  • clock (defaults to: Time.now)

    Defaults to current time, but can be provided as Time



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/poms/api/auth.rb', line 15

def sign(request, clock = Time.now)
  credentials = request.credentials
  timestamp = clock.rfc822
  message = generate_message(request, timestamp)
  auth = "NPO #{credentials.key}:#{encrypt(credentials.secret, message)}"

  request.merge(headers: request.headers.merge(
    'Origin' => credentials.origin,
    'X-NPO-Date' => timestamp,
    'Authorization' => auth
  ))
end