·Yazan The PrimDB team

PrimDB Auth: kendi veritabanında yaşayan kimlik doğrulama

PrimDB Auth kullanıcılarını e-posta + parola, sihirli bağlantı ya da passkey ile içeri alır ve kayıtlarını senin kendi Postgres’ine koyar, düz SQL’de join edilebilir. MAU başına fatura yok, SSO vergisi yok, AB’de barınır. Gelen ne, sırada ne, burada.

AuthPostgresLaunch

Her uygulamanın bir girişe ihtiyacı var ve neredeyse her ekip bunu kiralayarak çözer. Bir tedarikçi cıvatalarsın ve o andan itibaren kullanıcıların sorgulayamadığın bir yerde yaşar. “Ödeme yapan müşterilerimden hangileri bu hafta giriş yaptı” sorusuna yanıt vermek, sayfalanacak bir kullanıcı-listesi API’si, senkron tutulacak bir webhook aynası ve her aylık aktif kullanıcıyla tırmanan bir fatura demektir. PrimDB Auth beşinci ürün sütunudur ve tersine bahis oynar: kullanıcıların senin veritabanına aittir.

Kullanıcıların kendi Postgres’inde

Bir proje için Auth’u açtığında, PrimDB o projenin kendi oluşturulmuş Postgres’inde üç tablo yaratır: auth_users, auth_sessions ve auth_passkeys. Bir kopya değil, bir ayna değil. Gerçek kayıtlar, uygulamanın zaten konuştuğu aynı veritabanında yaşar, böylece onları kendi tablolarınla tek bir sorguda join edebilirsin.

-- auth_users lives in YOUR project's Postgres.
-- Join it with your own tables in plain SQL:
SELECT u.email, count(o.id) AS orders
FROM   auth_users u
JOIN   orders o ON o.user_id = u.id
WHERE  u.status = 'active'
GROUP  BY u.email
ORDER  BY orders DESC;

Bu, kilit olmadan Supabase eşdeğeri fikirdir: kimlik verin bir tedarikçide değil, senin veritabanında. Kendi kullanıcılarını geri almak için bir dışa aktarma işi yok, çünkü hiç ayrılmadılar. project_id ile anahtarlanan proje bazında izolasyon, bir projedeki kullanıcının bir başkasına asla ulaşamayacağı anlamına gelir ve auth tabloları tarayıcıya asla açılmaz: erişim kimlik API’si üzerinden gider.

İçeri girmenin üç yolu, bugün gelen

MVP üç giriş yöntemiyle gelir, her biri panelden proje bazında aç kapa yapılır:

  • E-posta + parola: parolalar bcrypt ile hashlenir, tekrarlı hatadan sonra kilitlenir ve parola sıfırlama tek-kullanımlık bir bağlantı üzerinden yapılır.
  • Sihirli bağlantı: Resend üzerinden gönderilen tek-kullanımlık bir giriş bağlantısı, oran-sınırlı, hızlı biter ve tıklandıktan sonra yeniden kullanılamaz.
  • Passkey (WebAuthn): Touch ID, Face ID ya da alan adına bağlı bir güvenlik anahtarıyla giriş yap, yedek olarak da sihirli bağlantı.

Oturumlar kısa bir JWT artı dönen bir yenileme token’ıdır, tek tek ya da tümü birden panelden iptal edilebilir. Geçerli bir erişim token’ı veritabanına gidip gelmeden doğrulanır.

Tek arka uç SDK: @primdb/auth-node

Entegrasyon bir arka uç paketidir, artık npm’de: npm i @primdb/auth-node. Proje id’ine yönlendir ve giriş çağır. Aynı istemci e-posta + parola, sihirli bağlantı, passkey, oturumlar ve sunucu tarafı istek doğrulamayı kapsar.

import { createPrimDBAuth } from '@primdb/auth-node'

export const auth = createPrimDBAuth({
  projectId: process.env.PRIMDB_PROJECT_ID,
})

// Email + password, magic link, or passkey — one API:
const { user, session } = await auth.signIn.emailPassword({
  email: 'ada@example.com',
  password: '••••••••',
})

// Validate a request on your server. No DB call for a valid JWT:
const current = await auth.validateRequest(request)

MVP’de tüm entegrasyon yüzeyi budur: sunucu tarafıdır. Hazır React bileşenleri ve barındırılan bir giriş widget’ı yol haritasında, henüz gelmedi.

Bu neden tedarikçi cıvatalamayı geçer

Clerk ve Auth0 aylık aktif kullanıcı başına ölçer ve SSO’yu kurumsal katmanın arkasına kilitler. Supabase Auth kullanıcılarını kendi platformunda tutar. PrimDB Auth ikisini de yapmaz: sabit $20 platforma dahildir, lansmanda MAU başına sayaç ve SSO vergisi yok, ABD’de değil AB’de Hetzner üzerinde barınır. Adil-kullanım tavanı sonra sabit bir paket olarak gelir, kullanıcı başına uçurum olarak asla. Ve burada deploy ettiğin uygulama ve veritabanına zaten bağlıdır, yani fiyatı hesaplanacak ve senkron tutulacak dördüncü bir tedarikçi yok.

Sırada ne var

Henüz orada olmayan bir özelliği iddia etmektense küçük ve dürüst bir MVP göndermeyi yeğleriz. Bu yüzden, henüz gelmeyeni netleştirmek adına, şunlar Phase 2 yol haritasında:

  • OAuth sosyal giriş (Google, GitHub ve dahası).
  • Son kullanıcıların için uygulama SSO / SAML, ücretli eklenti olarak.
  • Bir kimlik doğrulayıcı uygulamayla MFA / TOTP.
  • Uygulamanın içinde organizasyonlar ve ekipler.
  • React bileşenleri ve barındırılan bir giriş widget’ı.

Dürüst not. Bugün gelen: e-posta + parola, sihirli bağlantı ve passkey, kullanıcıların kendi Postgres’inde. Yukarıdaki listedeki her şey planlı, canlı değil.

Tam hikayeyi Kimlik sayfasında oku ya da panelden bir proje için aç.

Blog’a dön