Module: Upkeep::Rails::ActivationToken
- Defined in:
- lib/upkeep/rails/activation_token.rb
Constant Summary collapse
- PURPOSE =
"upkeep-subscription-activation"
Class Method Summary collapse
- .fallback_secret ⇒ Object
- .fallback_verifier ⇒ Object
- .generate(subscription) ⇒ Object
- .rails_message_verifier ⇒ Object
- .token_subscription_id(payload) ⇒ Object
- .valid_for_subscription?(token, subscription_id) ⇒ Boolean
- .verifier ⇒ Object
Class Method Details
.fallback_secret ⇒ Object
50 51 52 |
# File 'lib/upkeep/rails/activation_token.rb', line 50 def fallback_secret @fallback_secret ||= SecureRandom.hex(64) end |
.fallback_verifier ⇒ Object
46 47 48 |
# File 'lib/upkeep/rails/activation_token.rb', line 46 def fallback_verifier @fallback_verifier ||= ActiveSupport::MessageVerifier.new(fallback_secret) end |
.generate(subscription) ⇒ Object
13 14 15 16 17 18 19 20 |
# File 'lib/upkeep/rails/activation_token.rb', line 13 def generate(subscription) subscription_id = subscription.respond_to?(:id) ? subscription.id : subscription verifier.generate( { "subscription_id" => subscription_id.to_s }, purpose: PURPOSE, expires_in: Upkeep::Rails.configuration.activation_token_expires_in ) end |
.rails_message_verifier ⇒ Object
37 38 39 40 41 42 43 44 |
# File 'lib/upkeep/rails/activation_token.rb', line 37 def return unless defined?(::Rails) && ::Rails.respond_to?(:application) return unless ::Rails.application.respond_to?(:message_verifier) ::Rails.application.(PURPOSE) rescue StandardError nil end |
.token_subscription_id(payload) ⇒ Object
27 28 29 30 31 |
# File 'lib/upkeep/rails/activation_token.rb', line 27 def token_subscription_id(payload) return unless payload.respond_to?(:[]) payload["subscription_id"] || payload[:subscription_id] end |
.valid_for_subscription?(token, subscription_id) ⇒ Boolean
22 23 24 25 |
# File 'lib/upkeep/rails/activation_token.rb', line 22 def valid_for_subscription?(token, subscription_id) payload = verifier.verified(token.to_s, purpose: PURPOSE) token_subscription_id(payload) == subscription_id.to_s end |
.verifier ⇒ Object
33 34 35 |
# File 'lib/upkeep/rails/activation_token.rb', line 33 def verifier || fallback_verifier end |