2026-04-14 19:14:27 -04:00
|
|
|
mod register_client;
|
|
|
|
|
mod server_metadata;
|
2026-04-30 08:54:55 -04:00
|
|
|
mod token;
|
2026-04-14 19:14:27 -04:00
|
|
|
|
|
|
|
|
use axum::{
|
|
|
|
|
Json, Router,
|
|
|
|
|
routing::method_routing::{get, post},
|
|
|
|
|
};
|
|
|
|
|
use serde_json::json;
|
|
|
|
|
pub(crate) use server_metadata::*;
|
|
|
|
|
|
2026-04-30 08:54:55 -04:00
|
|
|
const BASE_PATH: &str = "/_continuwuity/oauth2/";
|
2026-04-14 19:14:27 -04:00
|
|
|
|
|
|
|
|
pub(crate) fn router() -> Router<crate::State> {
|
2026-04-30 08:54:55 -04:00
|
|
|
Router::new().nest(BASE_PATH, oauth_router())
|
|
|
|
|
// TODO(unspecced): used by old versions of the matrix-js-sdk
|
|
|
|
|
// .route("/.well-known/openid-configuration", get(
|
|
|
|
|
// async |State(services): State<crate::State>| {
|
|
|
|
|
// Json(authorization_server_metadata(&services).await)
|
|
|
|
|
// }
|
|
|
|
|
// ))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn oauth_router() -> Router<crate::State> {
|
2026-04-14 19:14:27 -04:00
|
|
|
Router::new()
|
|
|
|
|
.route("/client/register", post(register_client::register_client_route))
|
2026-04-30 08:54:55 -04:00
|
|
|
// TODO(unspecced): used by old versions of the matrix-js-sdk
|
2026-04-14 19:14:27 -04:00
|
|
|
.route("/client/keys.json", get(async || Json(json!({"keys": []}))))
|
2026-04-30 08:54:55 -04:00
|
|
|
.route("/grant/token", post(token::token_route))
|
2026-04-14 19:14:27 -04:00
|
|
|
}
|