Sha256: 41ba39a74a6eac500776ef9783945f1fcd7d0796be113d29e02697647c18920e
Contents?: true
Size: 578 Bytes
Versions: 5
Compression:
Stored size: 578 Bytes
Contents
require "openssl" require "base64" module Stream class Signer @key = nil def initialize(key) @key = key.to_s @sha1 = OpenSSL::Digest.new("sha1") end def urlsafe_encodeb64(value) value.tr("+", "-").tr("/", "_").gsub(/^=+/, "").gsub(/=+$/, "") end def sign_message(message) key = Digest::SHA1.digest @key.to_s token = Base64.strict_encode64(OpenSSL::HMAC.digest(@sha1, key, message)) urlsafe_encodeb64(token) end def sign(feed_slug, user_id) sign_message("#{feed_slug}#{user_id}") end end end
Version data entries
5 entries across 5 versions & 1 rubygems