Sha256: 4a5512c87a4d686ff07a59d7a057e473f0e2468b74a55f8a14b605d06e3d9548

Contents?: true

Size: 616 Bytes

Versions: 12

Compression:

Stored size: 616 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 urlSafeB64encode(value)
            value.gsub('+', '-').gsub('/', '_').gsub(/^=+/, '').gsub(/=+$/, '')
        end

        def sign(feed_slug, user_id)
            message = "#{feed_slug}#{user_id}"
            key = Digest::SHA1.digest @key.to_s
            token = Base64.strict_encode64(OpenSSL::HMAC.digest(@sha1, key, message))
            self.urlSafeB64encode(token)
        end

    end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
stream-ruby-2.1.4 lib/stream/signer.rb
stream-ruby-2.1.3 lib/stream/signer.rb
stream-ruby-2.1.2 lib/stream/signer.rb
stream-ruby-2.1.1 lib/stream/signer.rb
stream-ruby-2.1.0 lib/stream/signer.rb
stream-ruby-2.0.6 lib/stream/signer.rb
stream-ruby-2.0.5 lib/stream/signer.rb
stream-ruby-2.0.4 lib/stream/signer.rb
stream-ruby-2.0.3 lib/stream/signer.rb
stream-ruby-2.0.2 lib/stream/signer.rb
stream-ruby-2.0.1 lib/stream/signer.rb
stream-ruby-2.0.0 lib/stream/signer.rb