Sha256: f10957b0b7002327c70e72ccf63cb9d924707bea571421991ec49c99bf487383

Contents?: true

Size: 777 Bytes

Versions: 62

Compression:

Stored size: 777 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' => '',
          'id' => ''
        }
      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

62 entries across 62 versions & 1 rubygems

Version Path
bookends-9.0.13 app/services/bookends/glostick_user_extractor.rb
bookends-10.0.0.rc4 app/services/bookends/glostick_user_extractor.rb
bookends-10.0.0.rc2 app/services/bookends/glostick_user_extractor.rb
bookends-10.0.0.rc1 app/services/bookends/glostick_user_extractor.rb
bookends-9.0.12 app/services/bookends/glostick_user_extractor.rb
bookends-9.1.0.pre1 app/services/bookends/glostick_user_extractor.rb
bookends-9.0.11 app/services/bookends/glostick_user_extractor.rb
bookends-9.0.10 app/services/bookends/glostick_user_extractor.rb
bookends-9.0.9 app/services/bookends/glostick_user_extractor.rb
bookends-9.0.8 app/services/bookends/glostick_user_extractor.rb
bookends-9.0.7 app/services/bookends/glostick_user_extractor.rb
bookends-9.0.6 app/services/bookends/glostick_user_extractor.rb
bookends-9.0.5 app/services/bookends/glostick_user_extractor.rb
bookends-9.0.4 app/services/bookends/glostick_user_extractor.rb
bookends-9.0.3 app/services/bookends/glostick_user_extractor.rb
bookends-9.0.2 app/services/bookends/glostick_user_extractor.rb
bookends-9.0.1 app/services/bookends/glostick_user_extractor.rb
bookends-9.0.0 app/services/bookends/glostick_user_extractor.rb
bookends-8.0.8 app/services/bookends/glostick_user_extractor.rb
bookends-8.0.7 app/services/bookends/glostick_user_extractor.rb