All checks were successful
Frontend CI / build (push) Successful in 1m7s
### Description - Login with configured OIDC issuer, and then save the logged in information in server session. - Endpoints: - GET `/auth/login` - GET `/auth/callback` - GET `/auth/logout` ### Package Changes ```toml actix-session = { version = "0.10.1", features = ["redis-session"] } hex = "0.4.3" openidconnect = { version = "4.0.1", features = [ "reqwest", "reqwest-blocking", ] } ``` ### Screenshots <video src="attachments/8b15b576-61db-41b9-8587-b4b885018c93" title="Screencast From 2025-07-30 03-34-26.mp4" controls></video> ### Reference Resolves #85 ### Checklist - [x] A milestone is set - [x] The related issuse has been linked to this branch Reviewed-on: #93 Co-authored-by: SquidSpirit <squid@squidspirit.com> Co-committed-by: SquidSpirit <squid@squidspirit.com>
34 lines
871 B
Rust
34 lines
871 B
Rust
use openidconnect::reqwest;
|
|
|
|
use crate::configuration::{
|
|
db::DbConfiguration, oidc::OidcConfiguration, server::ServerConfiguration,
|
|
session::SessionConfiguration, storage::StorageConfiguration,
|
|
};
|
|
|
|
pub mod db;
|
|
pub mod oidc;
|
|
pub mod server;
|
|
pub mod session;
|
|
pub mod storage;
|
|
|
|
#[derive(Clone)]
|
|
pub struct Configuration {
|
|
pub db: DbConfiguration,
|
|
pub oidc: OidcConfiguration,
|
|
pub server: ServerConfiguration,
|
|
pub session: SessionConfiguration,
|
|
pub storage: StorageConfiguration,
|
|
}
|
|
|
|
impl Configuration {
|
|
pub async fn new(http_client: reqwest::Client) -> Self {
|
|
Self {
|
|
db: DbConfiguration::new(),
|
|
oidc: OidcConfiguration::new(http_client).await,
|
|
server: ServerConfiguration::new(),
|
|
session: SessionConfiguration::new(),
|
|
storage: StorageConfiguration::new(),
|
|
}
|
|
}
|
|
}
|