pub struct ActiveSession {
pub id: String,
pub is_current: bool,
pub user_agent: String,
pub ip: String,
pub issued_at: Option<Timestamp>,
pub expires_at: Option<Timestamp>,
pub last_used_at: Option<Timestamp>,
pub owner_authorization: Option<OwnerAuthorizationBundle>,
}Fields§
§id: StringPublic id of the refresh token (matches auth_refresh_tokens.id).
Used by RevokeSession to identify which row to revoke.
is_current: boolTrue for the session this RPC was invoked on, so the UI can mark it “Current” and disable the revoke button (revoking yourself is just logout — the dedicated logout flow handles cookie cleanup correctly).
user_agent: StringCaptured at issue time. Surfaced in the device list as a human-readable string (“Chrome on macOS”, “Safari on iPhone”). The web layer parses to that shape for display; the raw UA header is what’s stored.
ip: StringCaptured at issue time. Empty string when unknown.
issued_at: Option<Timestamp>§expires_at: Option<Timestamp>§last_used_at: Option<Timestamp>Last time this token was rotated (i.e. the user actively used the app from this session). Zero when never rotated.
Typed purge-only owner evidence associated with this session.
Trait Implementations§
Source§impl Clone for ActiveSession
impl Clone for ActiveSession
Source§fn clone(&self) -> ActiveSession
fn clone(&self) -> ActiveSession
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ActiveSession
impl Debug for ActiveSession
Source§impl Default for ActiveSession
impl Default for ActiveSession
Source§impl Message for ActiveSession
impl Message for ActiveSession
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self.