Private/Set-InfisicalSessionToken.ps1
|
# Set-InfisicalSessionToken.ps1 # Extracts the access token from an auth response and stores it in the session. # Shared helper for all auth methods in Connect-Infisical. # Called by: Connect-Infisical # Dependencies: InfisicalSession class function Set-InfisicalSessionToken { [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseShouldProcessForStateChangingFunctions', '', Justification = 'Internal helper that modifies in-memory session object only')] [CmdletBinding()] param( [Parameter(Mandatory)] [InfisicalSession] $Session, [Parameter(Mandatory)] [PSObject] $AuthResponse ) $secureToken = [System.Security.SecureString]::new() foreach ($char in $AuthResponse.accessToken.ToCharArray()) { $secureToken.AppendChar($char) } $secureToken.MakeReadOnly() $Session.AccessToken = $secureToken $hasExpiresIn = if ($AuthResponse -is [hashtable]) { $AuthResponse.ContainsKey('expiresIn') } else { $null -ne $AuthResponse.PSObject.Properties['expiresIn'] } if ($hasExpiresIn -and $AuthResponse.expiresIn) { $Session.TokenExpiry = [datetime]::UtcNow.AddSeconds($AuthResponse.expiresIn) } } |