feat: Implement WebFinger discovery and ActivityPub user actor endpoint

- Added a new router for handling well-known endpoints, specifically WebFinger.
- Implemented the `webfinger` function to respond to WebFinger queries.
- Created a new route for WebFinger in the router.
- Refactored user retrieval logic to support both user ID and username in a single endpoint.
- Updated user router to use the new `get_user_by_param` function.
- Added tests for WebFinger discovery and ActivityPub user actor endpoint.
- Updated dependencies in Cargo.toml files to include necessary libraries.
This commit is contained in:
2025-09-06 01:18:04 +02:00
parent 3d73c7f198
commit c7c573f3f4
11 changed files with 935 additions and 70 deletions

View File

@@ -5,8 +5,9 @@ pub mod feed;
pub mod root;
pub mod thought;
pub mod user;
pub mod well_known;
use crate::routers::auth::create_auth_router;
use crate::routers::{auth::create_auth_router, well_known::create_well_known_router};
use app::state::AppState;
use root::create_root_router;
use tower_http::cors::CorsLayer;
@@ -19,6 +20,7 @@ pub fn create_router(state: AppState) -> Router {
Router::new()
.merge(create_root_router())
.nest("/.well-known", create_well_known_router())
.nest("/auth", create_auth_router())
.nest("/users", create_user_router())
.nest("/thoughts", create_thought_router())