Class: SpreeCmCommissioner::CrossAppHandoffTokens::Encode
- Inherits:
-
Object
- Object
- SpreeCmCommissioner::CrossAppHandoffTokens::Encode
- Includes:
- Spree::ServiceModule::Base
- Defined in:
- app/services/spree_cm_commissioner/cross_app_handoff_tokens/encode.rb
Constant Summary collapse
- TTL =
1.minute
- ALGORITHM =
'HS256'.freeze
- PURPOSES =
%w[operator_sign_in organizer_web_session].freeze
Instance Method Summary collapse
Instance Method Details
#call(user:, purpose:) ⇒ Object
25 26 27 28 29 30 31 32 33 34 |
# File 'app/services/spree_cm_commissioner/cross_app_handoff_tokens/encode.rb', line 25 def call(user:, purpose:) return failure(nil, "invalid purpose: #{purpose}") unless PURPOSES.include?(purpose.to_s) bump_version!(user) expires_at = TTL.from_now payload = { sub: user.id, purpose: purpose.to_s, ver: user.cross_app_handoff_version, exp: expires_at.to_i } success(token: JWT.encode(payload, user.secure_token, ALGORITHM), expires_at: expires_at) end |