Module: Ez::Sessions::API
- Included in:
- Model
- Defined in:
- lib/ez/sessions/api.rb
Instance Method Summary collapse
- #create_session(user_id:, user_agent: nil, expires_at: nil) ⇒ Object
- #decode_session(session_token) ⇒ Object
- #encode_token(session_record) ⇒ Object
Instance Method Details
#create_session(user_id:, user_agent: nil, expires_at: nil) ⇒ Object
8 9 10 11 12 13 14 |
# File 'lib/ez/sessions/api.rb', line 8 def create_session(user_id:, user_agent: nil, expires_at: nil) Ez::Sessions::Model.create!( user_id: user_id, user_agent: user_agent, expires_at: expires_at || 30.days.from_now ) end |
#decode_session(session_token) ⇒ Object
27 28 29 30 31 32 |
# File 'lib/ez/sessions/api.rb', line 27 def decode_session(session_token) payload = JWT.decode(session_token, Ez::Sessions.config.token_secret_base).first Ez::Sessions::Model.find_by!(id: payload.fetch('session_id')) rescue StandardError Ez::Sessions.config.on_invalid_session_token.call end |
#encode_token(session_record) ⇒ Object
16 17 18 19 20 21 22 23 24 25 |
# File 'lib/ez/sessions/api.rb', line 16 def encode_token(session_record) JWT.encode( { session_id: session_record.id, user_id: session_record.user_id, exp: session_record.expires_at.to_i }, Ez::Sessions.config.token_secret_base ) end |