Autentikointi
Kirjapro käyttää Supabase Auth -palvelua PKCE (Proof Key for Code Exchange) -flowlla.
JWT-autentikointi
Osio nimeltä “JWT-autentikointi”Access Token
Osio nimeltä “Access Token”Supabase Auth palauttaa JWT access tokenin kirjautumisen yhteydessä.
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...Token-rakenne
Osio nimeltä “Token-rakenne”JWT sisältää:
{ "sub": "user-uuid", "email": "user@example.com", "role": "authenticated", "aud": "authenticated", "exp": 1234567890}| Kenttä | Kuvaus |
|---|---|
sub | Käyttäjän UUID |
email | Käyttäjän sähköposti |
role | Aina “authenticated” |
exp | Vanhentumisaika (Unix timestamp) |
Token-uusiminen
Osio nimeltä “Token-uusiminen”Access token vanhenee oletuksena tunnissa. Refresh token uusii sen automaattisesti.
const { data: { session } } = await supabase.auth.getSession();const accessToken = session?.access_token;API-pyynnöt
Osio nimeltä “API-pyynnöt”Esimerkki
Osio nimeltä “Esimerkki”const response = await fetch( `${SUPABASE_URL}/functions/v1/send-einvoice`, { method: 'POST', headers: { 'Authorization': `Bearer ${accessToken}`, 'Content-Type': 'application/json', 'apikey': SUPABASE_ANON_KEY, }, body: JSON.stringify({ invoiceId: 'uuid' }), });Webhook-autentikointi
Osio nimeltä “Webhook-autentikointi”Webhookit (Maventa, Stripe) käyttävät HMAC-SHA256 signature -varmennusta.
Maventa Webhook
Osio nimeltä “Maventa Webhook”const signature = req.headers.get('X-Maventa-Signature');const expectedSignature = createHmac('sha256', webhookSecret) .update(JSON.stringify(payload)) .digest('hex');
if (signature !== expectedSignature) { return new Response('Invalid signature', { status: 401 });}Stripe Webhook
Osio nimeltä “Stripe Webhook”import Stripe from 'stripe';
const stripe = new Stripe(STRIPE_SECRET_KEY);const sig = req.headers.get('stripe-signature');
const event = stripe.webhooks.constructEvent( await req.text(), sig, STRIPE_WEBHOOK_SECRET);Turvallisuus
Osio nimeltä “Turvallisuus”- Kaikki data on suojattu käyttäjäkohtaisesti
- API-avaimet salataan ennen tallennusta
- Rate limiting suojaa väärinkäytöltä