Module: Fridge::RailsHelpers
- Defined in:
- lib/fridge/rails_helpers.rb
Instance Method Summary collapse
- #bearer_token ⇒ Object
- #clear_session_cookie ⇒ Object
- #current_token ⇒ Object
- #fridge_cookie_name ⇒ Object
- #fridge_cookie_options ⇒ Object
- #session_cookie ⇒ Object
- #session_cookie=(cookie) ⇒ Object
- #session_subject ⇒ Object
- #session_token ⇒ Object
- #sessionize_token(access_token) ⇒ Object
- #token_scope ⇒ Object
- #token_subject ⇒ Object
-
#validate_token(access_token) ⇒ Object
Validates token, and returns the token, or nil.
-
#validate_token!(access_token) ⇒ Object
Validates token, and raises an exception if invalid.
Instance Method Details
#bearer_token ⇒ Object
18 19 20 21 |
# File 'lib/fridge/rails_helpers.rb', line 18 def bearer_token header = request.env['HTTP_AUTHORIZATION'] header.gsub(/^Bearer /, '') unless header.nil? end |
#clear_session_cookie ⇒ Object
73 74 75 76 |
# File 'lib/fridge/rails_helpers.rb', line 73 def .delete , domain: :all nil end |
#current_token ⇒ Object
11 12 13 14 15 16 |
# File 'lib/fridge/rails_helpers.rb', line 11 def current_token return unless bearer_token @current_token ||= AccessToken.new(bearer_token).tap do |token| validate_token!(token) end end |
#fridge_cookie_name ⇒ Object
78 79 80 |
# File 'lib/fridge/rails_helpers.rb', line 78 def Fridge.configuration. end |
#fridge_cookie_options ⇒ Object
82 83 84 85 86 |
# File 'lib/fridge/rails_helpers.rb', line 82 def secure = !Rails.env.development? = { domain: :all, secure: secure, httponly: true } .merge(Fridge.configuration.) end |
#session_cookie ⇒ Object
65 66 67 |
# File 'lib/fridge/rails_helpers.rb', line 65 def [] end |
#session_cookie=(cookie) ⇒ Object
69 70 71 |
# File 'lib/fridge/rails_helpers.rb', line 69 def () [] = end |
#session_subject ⇒ Object
23 24 25 |
# File 'lib/fridge/rails_helpers.rb', line 23 def session_subject session_token.subject if session_token end |
#session_token ⇒ Object
27 28 29 30 31 32 33 34 |
# File 'lib/fridge/rails_helpers.rb', line 27 def session_token return unless @session_token ||= AccessToken.new().tap do |token| validate_token!(token) end rescue end |
#sessionize_token(access_token) ⇒ Object
54 55 56 57 58 59 60 61 62 63 |
# File 'lib/fridge/rails_helpers.rb', line 54 def sessionize_token(access_token) # Ensure that any cookie-persisted tokens are read-only access_token.scope = 'read' jwt = access_token.serialize self. = { value: jwt, expires: access_token.expires_at }.merge() end |
#token_scope ⇒ Object
3 4 5 |
# File 'lib/fridge/rails_helpers.rb', line 3 def token_scope current_token.scope if current_token end |
#token_subject ⇒ Object
7 8 9 |
# File 'lib/fridge/rails_helpers.rb', line 7 def token_subject current_token.subject if current_token end |
#validate_token(access_token) ⇒ Object
Validates token, and returns the token, or nil
37 38 39 40 41 42 |
# File 'lib/fridge/rails_helpers.rb', line 37 def validate_token(access_token) validator = Fridge.configuration.validator validator.call(access_token) && access_token rescue false end |
#validate_token!(access_token) ⇒ Object
Validates token, and raises an exception if invalid
45 46 47 48 49 50 51 52 |
# File 'lib/fridge/rails_helpers.rb', line 45 def validate_token!(access_token) validator = Fridge.configuration.validator if validator.call(access_token) access_token else fail InvalidToken end end |