Struct wasm_oidc_plugin::cookie::Session
source · pub struct Session {
pub authorization_state: Option<AuthorizationState>,
pub original_path: String,
pub code_verifier: String,
pub state: String,
}
Expand description
Struct that holds all information about the current session including the authorization state, the original path, the PKCE code verifier and the state
Fields§
Authorization state
original_path: String
Original Path to which the user should be redirected after login
code_verifier: String
PKCE Code Verifier used to generate the PKCE Code Challenge
state: String
State used to prevent CSRF attacks
Implementations§
source§impl Session
impl Session
sourcepub fn encrypt_and_encode(
&self,
cipher: Aes256Gcm,
) -> Result<(String, String), PluginError>
pub fn encrypt_and_encode( &self, cipher: Aes256Gcm, ) -> Result<(String, String), PluginError>
Create a new session, encrypt it and encode it by using the given cipher
cipher
- Cipher used to encrypt the cookie
Returns:
- the base64 encoded encrypted session data
- the base64 encoded nonce needed to decrypt it
Make the cookie values from the encoded cookie by splitting it into chunks of 4000 bytes and then building the values to be set in the Set-Cookie headers
encoded_cookie
- Encoded cookie to be split into chunks of 4000 bytesencoded_nonce
- Base64 encoded nonce needed to decrypt the cookiecookie_name
- Name of the cookiecookie_duration
- Duration of the cookie in secondsnumber_current_cookies
- Number of cookies that are currently set (important because otherwise decryption will fail if older and expired cookies are still present)
Make the Set-Cookie headers from the cookie values
cookie_values
- Cookie values to be set in the Set-Cookie headers
sourcepub fn decode_and_decrypt(
encoded_cookie: String,
cipher: Aes256Gcm,
encoded_nonce: String,
) -> Result<Session, PluginError>
pub fn decode_and_decrypt( encoded_cookie: String, cipher: Aes256Gcm, encoded_nonce: String, ) -> Result<Session, PluginError>
Decode cookie, parse into a struct in order to access the fields
encoded_cookie
- Encoded cookie to be decoded and parsed into a structcipher
- Cipher used to decrypt the cookieencoded_nonce
- Nonce used to decrypt the cookie
Trait Implementations§
source§impl<'de> Deserialize<'de> for Session
impl<'de> Deserialize<'de> for Session
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for Session
impl RefUnwindSafe for Session
impl Send for Session
impl Sync for Session
impl Unpin for Session
impl UnwindSafe for Session
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)