Skip to content

Providers

jack edited this page Jun 25, 2026 · 3 revisions

Auth providers and fallback-servers.json

Wawel Auth can accept players from two kinds of auth providers:

  • Local Wawel Auth provider hosted by the server itself
  • External fallback providers listed in config/wawelauth/fallback-servers.json

If local auth is enabled, it is checked first. If that does not resolve the player, Wawel Auth tries the configured fallback providers in order. There is no implicit Mojang (note, Mojang and Microsoft are used interchangeably in this article) fallback: if you want Mojang accounts to work, Mojang must be present in fallback-servers.json.

fallback-servers.json format

{
  "fallbackServers": [
    {
      "enabled": true,
      "name": "mojang",
      "sessionServerUrl": "https://sessionserver.mojang.com",
      "accountUrl": "https://authserver.mojang.com",
      "servicesUrl": "https://api.minecraftservices.com",
      "skinDomains": [
        ".minecraft.net",
        ".mojang.com"
      ],
      "cacheTtlSeconds": 300
    }
  ]
}

Field meanings

  • name: Provider identifier used by provider-scoped server commands such as /whitelist add player@provider, /op player@provider, /ban player@provider, and /pardon player@provider. It should be unique and should not contain spaces.
  • sessionServerUrl: Used for hasJoined checks and profile lookups.
  • accountUrl: Provider's auth server URL. Wawel Auth uses it when advertising accepted providers to Wawel Auth clients, and as a fallback source when deriving provider metadata.
  • servicesUrl: Provider's services/API base. Relevant for "richer" authlib-injector compatible providers.
  • apiRoot: Optional. It is mainly useful for authlib-injector style providers whose metadata lives at a Yggdrasil API root such as https://littleskin.cn/api/yggdrasil.
  • signaturePublicKeyBase64 Optional. If it is not set, Wawel Auth will try to discover the provider's signing key from its metadata on startup.
  • skinDomains: Lists texture domains that are trusted for that fallback provider.
  • cacheTtlSeconds: Controls the cache lifetime for fallback profile lookups and proxied textures.

Fallback entries for most popular providers

{
  "name": "ely.by",
  "sessionServerUrl": "https://authserver.ely.by/api/authlib-injector/sessionserver",
  "accountUrl": "https://authserver.ely.by/api",
  "servicesUrl": "https://authserver.ely.by/api/authlib-injector/minecraftservices",
  "skinDomains": [
    "ely.by",
    ".ely.by"
  ],
  "cacheTtlSeconds": 300
}
{
  "enabled": true,
  "name": "littleskin",
  "apiRoot": "https://littleskin.cn/api/yggdrasil",
  "sessionServerUrl": "https://littleskin.cn/api/yggdrasil/sessionserver",
  "accountUrl": "https://littleskin.cn/api/yggdrasil/authserver",
  "servicesUrl": "https://littleskin.cn/api/yggdrasil",
  "signaturePublicKeyBase64": "",
  "skinDomains": [
    "littleskin.cn"
  ],
  "cacheTtlSeconds": 300
}

Clone this wiki locally