Jackson Kruger 6cfd4637db
OAuth 2.0 Authorization Server [MOD-559] (#733)
* WIP end-of-day push

* Authorize endpoint, accept endpoints, DB stuff for oauth clients, their redirects, and client authorizations

* OAuth Client create route

* Get user clients

* Client delete

* Edit oauth client

* Include redirects in edit client route

* Database stuff for tokens

* Reorg oauth stuff out of auth/flows and into its own module

* Impl OAuth get access token endpoint

* Accept oauth access tokens as auth and update through AuthQueue

* User OAuth authorization management routes

* Forgot to actually add the routes lol

* Bit o cleanup

* Happy path test for OAuth and minor fixes for things it found

* Add dummy data oauth client (and detect/handle dummy data version changes)

* More tests

* Another test

* More tests and reject endpoint

* Test oauth client and authorization management routes

* cargo sqlx prepare

* dead code warning

* Auto clippy fixes

* Uri refactoring

* minor name improvement

* Don't compile-time check the test sqlx queries

* Trying to fix db concurrency problem to get tests to pass

* Try fix from test PR

* Fixes for updated sqlx

* Prevent restricted scopes from being requested or issued

* Get OAuth client(s)

* Remove joined oauth client info from authorization returns

* Add default conversion to OAuthError::error so we can use ?

* Rework routes

* Consolidate scopes into SESSION_ACCESS

* Cargo sqlx prepare

* Parse to OAuthClientId automatically through serde and actix

* Cargo clippy

* Remove validation requiring 1 redirect URI on oauth client creation

* Use serde(flatten) on OAuthClientCreationResult
2023-10-30 09:14:38 -07:00
2023-10-17 00:53:10 -07:00
2023-08-21 10:44:09 -04:00
2020-07-23 22:46:33 +02:00
2023-10-23 14:30:39 -05:00
2023-10-23 14:30:39 -05:00
2023-08-02 14:43:04 -07:00
2023-08-04 20:20:05 -07:00
2020-05-27 11:03:19 -07:00

labrinth banner

Modrinth's laboratory for its backend service & API!

For contributing information, please see the labrinth section of the Modrinth contributing guide. For documentation on the API itself, see the API Spec.

Description
The Modrinth monorepo containing all code which powers Modrinth!
Readme 122 MiB
Languages
Rust 44.6%
Vue 38.6%
TypeScript 8.2%
HTML 5.1%
JavaScript 1.9%
Other 1.5%