43 Commits

Author SHA1 Message Date
Evan Goode
c3cb43885f Add PlayerUUIDGeneration option 2025-07-27 11:49:08 -04:00
Evan Goode
79428c5286 lint 2025-07-26 12:31:22 -04:00
Evan Goode
fc38f38e48 cleanup 2025-07-26 12:31:22 -04:00
Evan Goode
57d98fb41c i18n player.go 2025-07-26 12:31:22 -04:00
Evan Goode
dbe1b4c9b2 fix tests 2025-07-26 12:31:22 -04:00
Evan Goode
8a0651ded5 i18n front.go 2025-07-26 12:31:22 -04:00
Evan Goode
30ba03adf4 Implement GET /minecraft/profile/lookup/:id
New route on api.minecraftservices.com, see
https://minecraft.wiki/w/Mojang_API#Query_player's_username
2025-04-04 21:00:08 -04:00
Evan Goode
8ccb3babeb Fix player faces on admin page 2025-03-22 17:43:56 -04:00
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
Evan Goode
568aab84f6 Test authentication multiple profiles 2024-12-28 21:07:32 -05:00
Evan Goode
1da3ac2601 Allow setting user's max player count in admin panel 2024-12-28 21:07:32 -05:00
Evan Goode
b034fd5a51 availableProfiles, selectedProfile 2024-12-28 21:07:32 -05:00
Evan Goode
faec464a4e Most Front tests passing 2024-12-28 21:07:32 -05:00
Evan Goode
1a8d312797 Tests passing except Front 2024-12-28 21:07:32 -05:00
Evan Goode
738d80538f Make multiple profiles usable from web front end 2024-12-28 21:07:32 -05:00
Evan Goode
f58ce99eae Initial changes to support multiple players per user 2024-12-28 21:07:32 -05:00
Evan Goode
65a5c5aff8 API Delete user 2024-08-15 12:33:59 -04:00
Evan Goode
f7ad78d8e9 refactor: CreateUser 2024-08-15 12:33:59 -04:00
Evan Goode
c70e266d57 Start implementing Drasl API 2024-08-15 12:33:59 -04:00
cat
3441839905 Add ApplicationName, use generic URLs in web UI 2024-08-15 12:33:59 -04:00
Evan Goode
39e700a3f0 Allow duplicate client tokens 2024-05-23 16:57:49 -04:00
Evan Goode
d017879daa Add ValidPlayerNameRegex option
By default, Drasl should check to make sure player names don't contain
special characters.

For https://github.com/unmojang/drasl/issues/73
2024-05-23 16:57:38 -04:00
Evan Goode
e8537ea54c OfflineSkins, also fix several skin issues 2023-11-10 20:19:07 -05:00
Evan Goode
50a0b95121 Dockerfile, template config file 2023-09-02 19:12:28 -04:00
Evan Goode
d750dacdbb Config validation/cleaning, cleanup 2023-08-29 00:26:21 -04:00
Evan Goode
fa5cd70eda Make player names case-insensitive
Resolves https://github.com/unmojang/drasl/issues/29
2023-08-20 22:34:55 -04:00
Evan Goode
fec8371816 Services tests 2023-08-20 00:47:54 -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
fad4a8498c Print initial invite link if necessary 2023-07-09 01:01:26 -04:00
Evan Goode
63fe0a2be3 update-users, delete-user tests, cleanup 2023-07-06 02:38:03 +00:00
Evan Goode
22d5f3525d initial work on invites, admin page 2023-07-06 02:38:03 +00:00
Evan Goode
a8bb8832dd s/SkinForwarding/ForwardSkins/, allow setting fallback player 2023-06-25 15:32:24 -04:00
Evan Goode
cd70c83be0 /publickeys for 1.20 2023-06-16 18:02:26 -04:00
Evan Goode
4fdb587119 Go all in on the unified server design 2023-06-03 19:39:35 -04:00
Evan Goode
0fdc6d916c More front-end tests, clean up tests 2023-05-28 00:38:51 -04:00
Evan Goode
955e42b1f3 Allow listening as one single server rather than five 2023-05-17 23:19:27 -04:00
Evan Goode
5476ea077a finish up the last of the miscellaneous API routes 2023-05-16 16:39:06 -04:00
Evan Goode
72176410e1 Name change 2023-05-16 01:39:41 -04:00
Evan Goode
6ba5367620 Configurable registration policy, anonymous login 2023-03-18 23:26:54 -04: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