From 0d055e05d241d59adae7ba1d5022a0398238ea5d Mon Sep 17 00:00:00 2001 From: Julian Tescher Date: Tue, 7 Jul 2020 10:26:35 -0700 Subject: [PATCH] Add federation OpenID userinfo API * Add federation OpenID userinfo API On-behalf-of: Julian Tescher --- ruma-federation-api/CHANGELOG.md | 3 +++ ruma-federation-api/src/lib.rs | 1 + ruma-federation-api/src/openid.rs | 3 +++ .../src/openid/get_openid_userinfo/mod.rs | 3 +++ .../src/openid/get_openid_userinfo/v1.rs | 26 +++++++++++++++++++ 5 files changed, 36 insertions(+) create mode 100644 ruma-federation-api/src/openid.rs create mode 100644 ruma-federation-api/src/openid/get_openid_userinfo/mod.rs create mode 100644 ruma-federation-api/src/openid/get_openid_userinfo/v1.rs diff --git a/ruma-federation-api/CHANGELOG.md b/ruma-federation-api/CHANGELOG.md index c958c824..d910ff92 100644 --- a/ruma-federation-api/CHANGELOG.md +++ b/ruma-federation-api/CHANGELOG.md @@ -18,6 +18,9 @@ Improvements: create_join_event::v1, create_join_event_template::v1 }, + openid::{ + get_openid_userinfo::v1 + }, query::{ get_profile_information::v1, get_room_information::v1, diff --git a/ruma-federation-api/src/lib.rs b/ruma-federation-api/src/lib.rs index ef95d3f6..986a4f07 100644 --- a/ruma-federation-api/src/lib.rs +++ b/ruma-federation-api/src/lib.rs @@ -7,5 +7,6 @@ mod serde; pub mod directory; pub mod discovery; pub mod membership; +pub mod openid; pub mod query; pub mod transactions; diff --git a/ruma-federation-api/src/openid.rs b/ruma-federation-api/src/openid.rs new file mode 100644 index 00000000..f5d3f258 --- /dev/null +++ b/ruma-federation-api/src/openid.rs @@ -0,0 +1,3 @@ +//! OpenID endpoints. + +pub mod get_openid_userinfo; diff --git a/ruma-federation-api/src/openid/get_openid_userinfo/mod.rs b/ruma-federation-api/src/openid/get_openid_userinfo/mod.rs new file mode 100644 index 00000000..2166974b --- /dev/null +++ b/ruma-federation-api/src/openid/get_openid_userinfo/mod.rs @@ -0,0 +1,3 @@ +//! Endpdoint for retrieving OpenID userinfo. + +pub mod v1; diff --git a/ruma-federation-api/src/openid/get_openid_userinfo/v1.rs b/ruma-federation-api/src/openid/get_openid_userinfo/v1.rs new file mode 100644 index 00000000..c09102c6 --- /dev/null +++ b/ruma-federation-api/src/openid/get_openid_userinfo/v1.rs @@ -0,0 +1,26 @@ +//! [GET /_matrix/federation/v1/openid/userinfo](https://matrix.org/docs/spec/server_server/r0.1.4#get-matrix-federation-v1-openid-userinfo) + +use ruma_api::ruma_api; +use ruma_identifiers::UserId; + +ruma_api! { + metadata: { + description: "Exchanges an OpenID access token for information about the user who generated the token.", + method: GET, + name: "get_openid_userinfo", + path: "/_matrix/federation/v1/openid/userinfo", + rate_limited: false, + requires_authentication: false, + } + + request: { + /// The OpenID access token to get information about the owner for. + #[ruma_api(query)] + pub access_token: String, + } + + response: { + /// The Matrix User ID who generated the token. + pub sub: UserId, + } +}