module Ez::Sessions::API
Public Instance Methods
create_session(user_id:, user_agent: nil, expires_at: nil)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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