29 lines
721 B
Rust
29 lines
721 B
Rust
use axum::{
|
|
routing::{get, post},
|
|
Router,
|
|
};
|
|
use tower_cookies::CookieManagerLayer;
|
|
|
|
use crate::state::RoutableAppState;
|
|
|
|
mod authorize;
|
|
mod index;
|
|
mod login;
|
|
mod logout;
|
|
|
|
/// Build a router for the application, in a specific subpath eg `/yunohost/sso/`
|
|
pub fn router(subpath: Option<String>, state: RoutableAppState) -> Router {
|
|
let app = Router::new()
|
|
.route("/", get(index::route))
|
|
.route("/login/", post(login::route))
|
|
.route("/logout/", get(logout::route))
|
|
.route("/authorize/", get(authorize::route))
|
|
.layer(CookieManagerLayer::new())
|
|
.with_state(state);
|
|
if let Some(p) = subpath {
|
|
Router::new().nest(&p, app)
|
|
} else {
|
|
app
|
|
}
|
|
}
|