27 Commits

Author SHA1 Message Date
Evan Goode
5c1f6c1cfa
Implement SSO via OIDC (#127)
Resolves https://github.com/unmojang/drasl/issues/39

* Use __Host- cookie prefix instead of setting Domain

See https://stackoverflow.com/a/64735551

* Unlinking OIDC accounts

* AllowPasswordLogin, OIDC docs, cleanup

* YggdrasilError

* Migrate existing password users without login

* API query/create/delete user OIDC identities

* test APICreateOIDCIdentity

* test APIDeleteeOIDCIdentity

* API Create users with OIDC identities

* OIDC: PKCE

* Use YggdrasilError in authlib-injector routes

* OIDC: AllowChoosingPlayerName

* recipes.md: Update for OIDC and deprecated config options

* OIDC: fix APICreateUser without password, validate oidcIdentities

* OIDC: error at complete-registration if no preferred player name

* Proper error pages

* MC_ prefix for Minecraft Tokens
2025-03-22 16:40:26 -04:00
IkyMax
09c9192cca
Authlib-Injector Skin API Support (#144)
* Initial support for Authlib-Injector Upload API

   - Support for HMCL

* Added Skin endpoint

* Support for capes

* Support for DELETE

* Explicitly route authlib-injector URLs, don't rewrite

* Test authlib-injector texture upload/delete

---------

Co-authored-by: Evan Goode <mail@evangoo.de>
2025-03-09 16:15:29 -04:00
Evan Goode
141db389ea Update wiki.vg links to minecraft.wiki 2024-12-28 23:23:20 -05:00
Evan Goode
f58ce99eae Initial changes to support multiple players per user 2024-12-28 21:07:32 -05:00
Evan Goode
d833185b2b Implement joinserver.jsp and checkserver.jsp 2024-08-29 18:38:48 -04:00
Evan Goode
23c6b3ba9a Allow hyphens in /session/minecraft/profile/<uuid>
Resolves https://github.com/unmojang/drasl/issues/102
2024-08-21 20:29:04 -04:00
Evan Goode
f7ad78d8e9 refactor: CreateUser 2024-08-15 12:33:59 -04:00
Evan Goode
e8537ea54c OfflineSkins, also fix several skin issues 2023-11-10 20:19:07 -05:00
Evan Goode
46f500f153 session: fix inverted behavior of 'unsigned' query param 2023-11-10 00:32:50 -05:00
Evan Goode
240bfd353f DenyUnknownUsers 2023-11-10 00:02:51 -05:00
Evan Goode
a7679dce16 Log responses from fallback API servers 2023-09-18 20:29:43 -04:00
Evan Goode
68f9e17803 recipes.md 2023-08-31 00:10:42 -04:00
Evan Goode
c5af033ca4 Fix AnonymousLogin, rename to TransientUsers 2023-08-20 02:15:04 +00:00
Evan Goode
3456e33085 Switch from 32-character hex accessTokens to JWTs 2023-08-20 02:15:04 +00:00
Evan Goode
fecd6e5daf Mostly cleanup, error handling, authlib-injector fixes 2023-07-28 16:33:45 -04:00
Evan Goode
7d5bab6e88 some services tests 2023-07-26 23:49:37 -04:00
Evan Goode
1171d4024f Session server tests 2023-07-23 15:31:39 -04:00
Evan Goode
6405e36db7 Tests for authserver 2023-07-22 18:51:20 -04:00
Evan Goode
ada118546f initial support for authlib-injector 2023-06-03 23:16:42 -04:00
Evan Goode
5476ea077a finish up the last of the miscellaneous API routes 2023-05-16 16:39:06 -04:00
Evan Goode
2d6cc2ad66 Blocked servers (return 204) 2023-05-16 00:25:17 -04:00
Evan Goode
de40a0cde0 Delete skin/cape 2023-05-16 00:24:55 -04:00
Evan Goode
1ac386f206 Skin forwarding from fallback API servers 2023-05-13 15:07:56 -04:00
Evan Goode
6ba5367620 Configurable registration policy, anonymous login 2023-03-18 23:26:54 -04:00
Evan Goode
50fe5338af working skin challenge 2023-01-23 22:15:33 -05:00
Evan Goode
fb5f97afb2 WIP: "Skin challenge" system
Add a system for verifying that a user owns an account on another API
server (such as Mojang's). Drasl gives the user a skin to put on their
account, then checks that the account has the skin.

See `getChallenge` in `front.go`.
2022-09-21 19:16:11 -04:00
Evan Goode
8d56b40c8f MVP 2022-08-19 00:02:45 -04:00