pub enum CreateSessionResponse {
Login(NewSessionResponse),
Register {
response: NewSessionResponse,
oauth_profile: Option<OAuthUserProfile>,
},
}
Expand description
Response for creating a session.
Notes:
- When creating a
Register
session through OAuth, the API also returns user profile info given as part of the identity claims from the OAuth provider (e.g. Google). - This response also includes a cookie.
Returned cookie auth token can be passed to the API in three ways in requests. They are listed below in order of precedence (i.e. if 1 exists then 2, 3 are ignored):
- Passed as a query
<uri-to-resource>?access_token=<token>
. - Passed in the request header as
Authorization: Bearer <token>
. - As a cookie,
X-AUTH=<token>
. This token will also be authenticated against the CSRF-prevention header.
Variants§
Login(NewSessionResponse)
A new session was successfully created and the user may use the api as normal.
Register
The user has no profile, a token for creating one has been returned.
- If using OAuth, then a
Some(OAuthUserProfile)
is included as well containing known information about the user. - If using Basic auth, then the
oauth_profile
field will beNone
and not be serialized.
§Json response without OAuth profile:
{
"register": {
"csrf": <CSRF_TOKEN>,
}
}
§Json response with OAuth profile:
{
"register": {
"csrf": <CSRF_TOKEN>,
"oauth_profile": {
"email": <EMAIL>,
... # other optional profile fields
}
}
}
Fields
§
response: NewSessionResponse
Csrf token. Note that this field is “flattened” into it’s contents when (de)serialized. See example above.
§
oauth_profile: Option<OAuthUserProfile>
Oauth profile
Trait Implementations§
Source§impl Debug for CreateSessionResponse
impl Debug for CreateSessionResponse
Source§impl<'de> Deserialize<'de> for CreateSessionResponse
impl<'de> Deserialize<'de> for CreateSessionResponse
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 CreateSessionResponse
impl RefUnwindSafe for CreateSessionResponse
impl Send for CreateSessionResponse
impl Sync for CreateSessionResponse
impl Unpin for CreateSessionResponse
impl UnwindSafe for CreateSessionResponse
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