Sha256: 403f010209cf42f89fa078433112eac051891d907841b60956b8ecd98c6200ac

Contents?: true

Size: 755 Bytes

Versions: 34

Compression:

Stored size: 755 Bytes

Contents

module Bookends
  class GlostickUserExtractor
    attr_reader :secret,
                :token

    def initialize(cookies, secret)
      @secret = secret
      @token  = CGI::unescape(cookies[:heroku_user_session]) if cookies[:heroku_user_session]
    end

    def user
      session_info = decrypt_session_cookie
      if session_info && session_info['user']
        session_info['user']
      else
        {
          'email' => '',
          'full_name' => ''
        }
      end
    end

    private

    def decrypt_session_cookie
      return nil unless token && secret

      verifier = Fernet.verifier(secret, token)
      verifier.enforce_ttl = false

      return nil unless verifier.valid?

      JSON.parse(verifier.message)
    end
  end
end

Version data entries

34 entries across 34 versions & 1 rubygems

Version Path
bookends-8.0.2 app/services/bookends/glostick_user_extractor.rb
bookends-8.0.1 app/services/bookends/glostick_user_extractor.rb
bookends-8.0.0 app/services/bookends/glostick_user_extractor.rb
bookends-7.0.0 app/services/bookends/glostick_user_extractor.rb
bookends-6.0.1 app/services/bookends/glostick_user_extractor.rb
bookends-6.0.0 app/services/bookends/glostick_user_extractor.rb
bookends-6.0.0.rc3 app/services/bookends/glostick_user_extractor.rb
bookends-6.0.0.rc2 app/services/bookends/glostick_user_extractor.rb
bookends-6.0.0.rc1 app/services/bookends/glostick_user_extractor.rb
bookends-5.0.0 app/services/bookends/glostick_user_extractor.rb
bookends-4.2.9 app/services/bookends/glostick_user_extractor.rb
bookends-4.2.8 app/services/bookends/glostick_user_extractor.rb
bookends-4.2.7 app/services/bookends/glostick_user_extractor.rb
bookends-4.2.7rc1 app/services/bookends/glostick_user_extractor.rb
bookends-4.2.6 app/services/bookends/glostick_user_extractor.rb
bookends-4.2.6rc1 app/services/bookends/glostick_user_extractor.rb
bookends-4.2.5 app/services/bookends/glostick_user_extractor.rb
bookends-4.2.4 app/services/bookends/glostick_user_extractor.rb
bookends-4.2.3 app/services/bookends/glostick_user_extractor.rb
bookends-4.2.2 app/services/bookends/glostick_user_extractor.rb