pub struct OAuthClient {Show 18 fields
pub id: Uuid,
pub client_id: String,
pub client_name: String,
pub application_type: ApplicationType,
pub token_endpoint_auth_method: TokenEndpointAuthMethod,
pub client_secret: Option<Digest>,
pub client_secret_expires_at: Option<DateTime<Utc>>,
pub redirect_uris: Vec<String>,
pub post_logout_redirect_uris: Option<Vec<String>>,
pub allowed_grant_types: Vec<GrantTypeName>,
pub scopes: Vec<String>,
pub require_pkce: bool,
pub pkce_methods_allowed: Vec<PkceMethod>,
pub origin: String,
pub bearer_allowed: bool,
pub created_at: DateTime<Utc>,
pub updated_at: DateTime<Utc>,
pub deleted_at: Option<DateTime<Utc>>,
}Fields§
§id: Uuid§client_id: String§client_name: String§application_type: ApplicationType§token_endpoint_auth_method: TokenEndpointAuthMethod§client_secret: Option<Digest>Hashed/HMACed secret for confidential clients (BYTEA); None for public clients.
client_secret_expires_at: Option<DateTime<Utc>>§redirect_uris: Vec<String>§post_logout_redirect_uris: Option<Vec<String>>§allowed_grant_types: Vec<GrantTypeName>§scopes: Vec<String>§require_pkce: bool§pkce_methods_allowed: Vec<PkceMethod>§origin: String§bearer_allowed: bool§created_at: DateTime<Utc>§updated_at: DateTime<Utc>§deleted_at: Option<DateTime<Utc>>Implementations§
Source§impl OAuthClient
impl OAuthClient
pub fn is_public(&self) -> bool
pub fn is_confidential(&self) -> bool
pub fn allows_bearer(&self) -> bool
pub fn requires_pkce(&self) -> bool
pub fn allows_pkce_method(&self, m: PkceMethod) -> bool
pub fn allows_grant(&self, g: GrantTypeName) -> bool
Source§impl OAuthClient
impl OAuthClient
Sourcepub async fn find_by_id(conn: &mut PgConnection, id: Uuid) -> ModelResult<Self>
pub async fn find_by_id(conn: &mut PgConnection, id: Uuid) -> ModelResult<Self>
Find an active (non-soft-deleted) client by DB id (UUID).
Sourcepub async fn find_by_id_optional(
conn: &mut PgConnection,
id: Uuid,
) -> Result<Option<Self>, ModelError>
pub async fn find_by_id_optional( conn: &mut PgConnection, id: Uuid, ) -> Result<Option<Self>, ModelError>
Same as find_by_id, but returns Ok(None) when not found.
Sourcepub async fn find_by_client_id(
conn: &mut PgConnection,
client_id: &str,
) -> ModelResult<Self>
pub async fn find_by_client_id( conn: &mut PgConnection, client_id: &str, ) -> ModelResult<Self>
Find an active (non-soft-deleted) client by client_id.
Sourcepub async fn find_by_client_id_optional(
conn: &mut PgConnection,
client_id: &str,
) -> Result<Option<Self>, ModelError>
pub async fn find_by_client_id_optional( conn: &mut PgConnection, client_id: &str, ) -> Result<Option<Self>, ModelError>
Same as find_by_client_id, but returns Ok(None) when not found.
Sourcepub async fn insert(
conn: &mut PgConnection,
p: NewClientParams<'_>,
) -> ModelResult<Self>
pub async fn insert( conn: &mut PgConnection, p: NewClientParams<'_>, ) -> ModelResult<Self>
Insert a new client and return the full hydrated row.
Trait Implementations§
Source§impl Debug for OAuthClient
impl Debug for OAuthClient
Source§impl<'de> Deserialize<'de> for OAuthClient
impl<'de> Deserialize<'de> for OAuthClient
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
Source§impl<'a, R: Row> FromRow<'a, R> for OAuthClientwhere
&'a str: ColumnIndex<R>,
Uuid: Decode<'a, R::Database> + Type<R::Database>,
String: Decode<'a, R::Database> + Type<R::Database>,
ApplicationType: Decode<'a, R::Database> + Type<R::Database>,
TokenEndpointAuthMethod: Decode<'a, R::Database> + Type<R::Database>,
Option<Digest>: Decode<'a, R::Database> + Type<R::Database>,
Option<DateTime<Utc>>: Decode<'a, R::Database> + Type<R::Database>,
Vec<String>: Decode<'a, R::Database> + Type<R::Database>,
Option<Vec<String>>: Decode<'a, R::Database> + Type<R::Database>,
Vec<GrantTypeName>: Decode<'a, R::Database> + Type<R::Database>,
bool: Decode<'a, R::Database> + Type<R::Database>,
Vec<PkceMethod>: Decode<'a, R::Database> + Type<R::Database>,
DateTime<Utc>: Decode<'a, R::Database> + Type<R::Database>,
impl<'a, R: Row> FromRow<'a, R> for OAuthClientwhere
&'a str: ColumnIndex<R>,
Uuid: Decode<'a, R::Database> + Type<R::Database>,
String: Decode<'a, R::Database> + Type<R::Database>,
ApplicationType: Decode<'a, R::Database> + Type<R::Database>,
TokenEndpointAuthMethod: Decode<'a, R::Database> + Type<R::Database>,
Option<Digest>: Decode<'a, R::Database> + Type<R::Database>,
Option<DateTime<Utc>>: Decode<'a, R::Database> + Type<R::Database>,
Vec<String>: Decode<'a, R::Database> + Type<R::Database>,
Option<Vec<String>>: Decode<'a, R::Database> + Type<R::Database>,
Vec<GrantTypeName>: Decode<'a, R::Database> + Type<R::Database>,
bool: Decode<'a, R::Database> + Type<R::Database>,
Vec<PkceMethod>: Decode<'a, R::Database> + Type<R::Database>,
DateTime<Utc>: Decode<'a, R::Database> + Type<R::Database>,
Auto Trait Implementations§
impl Freeze for OAuthClient
impl RefUnwindSafe for OAuthClient
impl Send for OAuthClient
impl Sync for OAuthClient
impl Unpin for OAuthClient
impl UnwindSafe for OAuthClient
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more