Module: AcademicBenchmarks::Api::Auth
- Defined in:
- lib/academic_benchmarks/api/auth.rb
Class Method Summary collapse
- .auth_query_params(partner_id:, partner_key:, expires:, user_id: "") ⇒ Object
- .expire_time_in(offset) ⇒ Object
- .expire_time_in_10_seconds ⇒ Object
- .expire_time_in_2_hours ⇒ Object
- .message(expires:, user_id: '') ⇒ Object
- .signature_for(partner_key:, message:) ⇒ Object
Class Method Details
.auth_query_params(partner_id:, partner_key:, expires:, user_id: "") ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/academic_benchmarks/api/auth.rb', line 6 def self.auth_query_params(partner_id:, partner_key:, expires:, user_id: "") { "partner.id" => partner_id, "auth.signature" => signature_for( partner_key: partner_key, message: self.(expires: expires, user_id: user_id) ), "auth.expires" => expires }.tap do |params| params["user.id"] = user_id unless user_id.empty? end end |
.expire_time_in(offset) ⇒ Object
43 44 45 |
# File 'lib/academic_benchmarks/api/auth.rb', line 43 def self.expire_time_in(offset) Time.now.to_i + offset.to_i end |
.expire_time_in_10_seconds ⇒ Object
35 36 37 |
# File 'lib/academic_benchmarks/api/auth.rb', line 35 def self.expire_time_in_10_seconds self.expire_time_in(10.seconds) end |
.expire_time_in_2_hours ⇒ Object
39 40 41 |
# File 'lib/academic_benchmarks/api/auth.rb', line 39 def self.expire_time_in_2_hours self.expire_time_in(2.hours) end |
.message(expires:, user_id: '') ⇒ Object
27 28 29 30 31 32 33 |
# File 'lib/academic_benchmarks/api/auth.rb', line 27 def self.(expires:, user_id: '') if user_id.empty? "#{expires}" else "#{expires}\n#{user_id}" end end |
.signature_for(partner_key:, message:) ⇒ Object
19 20 21 22 23 24 25 |
# File 'lib/academic_benchmarks/api/auth.rb', line 19 def self.signature_for(partner_key:, message:) Base64.encode64(OpenSSL::HMAC.digest( OpenSSL::Digest.new('sha256'), partner_key, )).chomp end |