pub trait ApiKeyRepository: Send + Sync {
// Required method
fn find_by_key(&self, key: &str) -> Option<ApiKey>;
}Expand description
Trait for loading API keys.
Implement this trait to provide custom storage backends for API keys (e.g., database, Redis, external service).
§Example
ⓘ
use actix_security::http::security::api_key::{ApiKey, ApiKeyRepository};
struct DatabaseApiKeyRepository {
pool: DbPool,
}
impl ApiKeyRepository for DatabaseApiKeyRepository {
fn find_by_key(&self, key: &str) -> Option<ApiKey> {
// Query database for the API key
self.pool.query("SELECT * FROM api_keys WHERE key = ?", &[key])
.ok()
.map(|row| ApiKey::new(row.key)
.name(row.name)
.owner(row.owner)
.roles(row.roles)
.authorities(row.authorities)
.enabled(row.enabled))
}
}Required Methods§
Sourcefn find_by_key(&self, key: &str) -> Option<ApiKey>
fn find_by_key(&self, key: &str) -> Option<ApiKey>
Finds an API key by its value.
Returns Some(ApiKey) if found, None otherwise.