class Stytch::Sessions

def marshal_jwt_into_session(jwt)

def marshal_jwt_into_session(jwt)
  stytch_claim = "https://stytch.com/session"
  expires_at = jwt[stytch_claim]["expires_at"] || Time.at(jwt["exp"]).to_datetime.utc.strftime('%Y-%m-%dT%H:%M:%SZ')
  return {
    "session_id" => jwt[stytch_claim]["id"],
    "user_id" => jwt["sub"],
    "started_at" => jwt[stytch_claim]["started_at"],
    "last_accessed_at" => jwt[stytch_claim]["last_accessed_at"],
    # For JWTs that include it, prefer the inner expires_at claim.
    "expires_at" => expires_at,
    "attributes" => jwt[stytch_claim]["attributes"],
    "authentication_factors" => jwt[stytch_claim]["authentication_factors"],
  }
end