Table of Contents

Class AuthorizationStatusResponse

Namespace
SEBT.Portal.Api.Models
Assembly
SEBT.Portal.Api.dll

Response model for GET /api/auth/status. Carries non-sensitive session claims the SPA needs to drive UI decisions (IAL gating, analytics) now that the raw JWT lives in an HttpOnly cookie and cannot be decoded client-side. Anonymous callers get this same shape with IsAuthorized false and every claim null.

public record AuthorizationStatusResponse
Inheritance
object
AuthorizationStatusResponse

Constructors

AuthorizationStatusResponse(bool, Guid?, string?, string?, int?, long?, long?, bool?, long?, long?)

Response model for GET /api/auth/status. Carries non-sensitive session claims the SPA needs to drive UI decisions (IAL gating, analytics) now that the raw JWT lives in an HttpOnly cookie and cannot be decoded client-side. Anonymous callers get this same shape with IsAuthorized false and every claim null.

public AuthorizationStatusResponse(bool IsAuthorized, Guid? UserId = null, string? Email = null, string? Ial = null, int? IdProofingStatus = null, long? IdProofingCompletedAt = null, long? IdProofingExpiresAt = null, bool? IsCoLoaded = null, long? ExpiresAt = null, long? AbsoluteExpiresAt = null)

Parameters

IsAuthorized bool

True when the caller has a valid session; false for anonymous callers (no cookie, or an expired/tampered/revoked session), in which case all other fields are null.

UserId Guid?

Stable, non-PII portal user identifier (the portal's own user UUID). Surfaced for analytics so events can be correlated per-user across page loads without exposing email or other PII to vendor tooling. Null when the claim is absent.

Email string

The email address of the signed-in user. Null for anonymous callers, and null when the claim is absent from the session.

Ial string

Identity assurance level claim from the JWT ("0", "1", "1plus", or "2"). Null when unknown.

IdProofingStatus int?

Workflow state of the user's ID proofing process. See SEBT.Portal.Core.Models.Auth.IdProofingStatus. Null when the claim is absent.

IdProofingCompletedAt long?

Unix seconds timestamp of the most recent successful ID proofing completion. Null when none.

IdProofingExpiresAt long?

Unix seconds timestamp after which the IdP-bounded proofing credential should be re-verified. Null when not time-bounded.

IsCoLoaded bool?

Whether the user's record was co-loaded from an external state system. Null when the claim is absent.

ExpiresAt long?

Unix seconds timestamp at which the current session cookie expires (sliding/idle expiry). The SPA uses this to schedule activity-gated refreshes. Null when the claim is absent.

AbsoluteExpiresAt long?

Unix seconds timestamp at which the session reaches its absolute lifetime cap, regardless of activity. Computed from the JWT auth_time claim plus JwtSettings.AbsoluteExpirationMinutes. Null when auth_time is absent.

Properties

AbsoluteExpiresAt

Unix seconds timestamp at which the session reaches its absolute lifetime cap, regardless of activity. Computed from the JWT auth_time claim plus JwtSettings.AbsoluteExpirationMinutes. Null when auth_time is absent.

public long? AbsoluteExpiresAt { get; init; }

Property Value

long?

Email

The email address of the signed-in user. Null for anonymous callers, and null when the claim is absent from the session.

public string? Email { get; init; }

Property Value

string

ExpiresAt

Unix seconds timestamp at which the current session cookie expires (sliding/idle expiry). The SPA uses this to schedule activity-gated refreshes. Null when the claim is absent.

public long? ExpiresAt { get; init; }

Property Value

long?

Ial

Identity assurance level claim from the JWT ("0", "1", "1plus", or "2"). Null when unknown.

public string? Ial { get; init; }

Property Value

string

IdProofingCompletedAt

Unix seconds timestamp of the most recent successful ID proofing completion. Null when none.

public long? IdProofingCompletedAt { get; init; }

Property Value

long?

IdProofingExpiresAt

Unix seconds timestamp after which the IdP-bounded proofing credential should be re-verified. Null when not time-bounded.

public long? IdProofingExpiresAt { get; init; }

Property Value

long?

IdProofingStatus

Workflow state of the user's ID proofing process. See SEBT.Portal.Core.Models.Auth.IdProofingStatus. Null when the claim is absent.

public int? IdProofingStatus { get; init; }

Property Value

int?

IsAuthorized

True when the caller has a valid session; false for anonymous callers (no cookie, or an expired/tampered/revoked session), in which case all other fields are null.

public bool IsAuthorized { get; init; }

Property Value

bool

IsCoLoaded

Whether the user's record was co-loaded from an external state system. Null when the claim is absent.

public bool? IsCoLoaded { get; init; }

Property Value

bool?

UserId

Stable, non-PII portal user identifier (the portal's own user UUID). Surfaced for analytics so events can be correlated per-user across page loads without exposing email or other PII to vendor tooling. Null when the claim is absent.

public Guid? UserId { get; init; }

Property Value

Guid?