class HuaweiCloudSass::Auth

Public Class Methods

new(key) click to toggle source
# File lib/huawei_cloud_sass/auth.rb, line 7
def initialize(key)
  @key = key
end

Public Instance Methods

generate_auth_token(params) click to toggle source
# File lib/huawei_cloud_sass/auth.rb, line 15
def generate_auth_token(params)
  params.delete(:authToken)
  data = params.keys.sort.map { |k| "#{k}=#{params[k]}" }.join("&")
  digest = OpenSSL::Digest.new('sha256')
  body = OpenSSL::HMAC.digest(digest, "#{@key}#{params[:timeStamp]}", data)
  Base64.strict_encode64 body
end
is_valid_request?(params) click to toggle source
# File lib/huawei_cloud_sass/auth.rb, line 11
def is_valid_request?(params)
  params[:authToken] == generate_auth_token(params)
end