Skip to main content
This page covers the companion auth service repo. The auth service makes AniList account linking work for /register.

What the auth service does

The auth service:
  • receives the signed OAuth context from the bot
  • validates the context and creates a single-use OAuth state
  • redirects the browser to AniList
  • handles the AniList callback
  • exchanges the auth code for AniList tokens
  • fetches the AniList viewer ID and stores the linked credentials
  • serves GET /healthz for liveness and GET /readyz for database readiness

Before you start

You need an AniList OAuth application with a callback URL that points to the auth service. For local development, use:

Configure the auth environment

From a workspace where the bot repo and auth repo are siblings:
Then edit .env:
DATABASE_URL and OAUTH_CONTEXT_SIGNING_SECRET must match the bot service values. Keep USERID_HASH_SALT aligned too if you want matching hashed user identifiers across logs.

Run the auth service locally

1

Create the auth database

Create the shared PostgreSQL database or connection target you want both services to use.
2

Start the service

On startup, the service connects to PostgreSQL, runs SQLx migrations, and serves the AniList OAuth routes.
3

Verify the health endpoints

Verify the OAuth flow

  1. Start the bot service.
  2. Run /register in Discord.
  3. Click Link AniList Account.
  4. Complete the AniList flow in the browser.
  5. Run /whoami to confirm the linked profile.