Supabase: własny dostawca OIDC z Dazr Identity

Potrzebujesz trzech wartości z konsoli dla deweloperów: identyfikatora klienta, sekretu klienta (tylko aplikacje serwerowe) i zarejestrowanego URI przekierowania. Resztę zawiera dokument discovery pod adresem https://identity.dazr.eu/.well-known/openid-configuration.

Supabase Auth obsługuje własnych dostawców OAuth i OpenID Connect. Dodaj Dazr Identity jako jednego z nich, a Twoi użytkownicy zalogują się do Twojego projektu Supabase passkey, kodem e-mail albo kontem Google lub Microsoft, jednym przyciskiem.

1. Zarejestruj aplikację w Dazr Identity

W Dazr Identity → Deweloperzy zarejestruj aplikację serwerową. Jako URI przekierowania użyj adresu callback, który Supabase pokazuje przy dodawaniu dostawcy. W projekcie hostowanym przez Supabase jest to https://<project-ref>.supabase.co/auth/v1/callback. Zachowaj identyfikator i sekret klienta na następny krok.

2. Dodaj dostawcę w Supabase

W panelu Supabase otwórz dostawców Auth swojego projektu, kliknij New Provider i wybierz Auto-discovery (OIDC). Wpisz te wartości, a potem kliknij Create and enable provider.

UstawienieWartość
Identifiercustom:dazr
Identyfikator klientaTwój identyfikator klienta
Sekret klientaTwój sekret klienta
URL wystawcy (Issuer URL)https://identity.dazr.eu
Scope’yopenid profile email

Supabase odczytuje dokument discovery pod adresem https://identity.dazr.eu/.well-known/openid-configuration i sprawdza każdy token ID kluczami publicznymi, które on podaje. PKCE jest domyślnie włączone. Nie wyłączaj go: Dazr Identity odrzuca logowania bez PKCE.

Dostawcę możesz też utworzyć w kodzie, na serwerze, przez Admin API Supabase:

// Server only: this client uses the service role key.
const { data, error } = await supabase.auth.admin.customProviders.createProvider({
  provider_type: 'oidc',
  identifier: 'custom:dazr',
  name: 'Dazr Identity',
  client_id: process.env.DAZR_CLIENT_ID,
  client_secret: process.env.DAZR_CLIENT_SECRET,
  issuer: 'https://identity.dazr.eu',
  scopes: ['openid', 'profile', 'email'],
})

3. Zaloguj użytkowników

Rozpocznij logowanie z identyfikatorem dostawcy. Supabase obsługuje przekierowanie do Dazr Identity, PKCE i callback, a potem tworzy użytkownika albo loguje istniejącego.

const { data, error } = await supabase.auth.signInWithOAuth({
  provider: 'custom:dazr',
  options: { redirectTo: 'https://app.example.eu/auth/callback' },
})

Nadaj przyciskowi styl opisany w sekcji Przycisk. Row level security działa jak zwykle: zalogowana osoba ma zwykły identyfikator użytkownika Supabase.

Warto wiedzieć

Więcej dla deweloperów