Oturum modeli
Panel çerezle çalışır: giriş başarılı olunca 8 saatlik, kayan yenilemeli bir oturum çerezi yazılır. API’nin JWT’si makineler içindir; panel onu kullanmaz. Giriş formu hesap keşfine kapalıdır — kullanıcı yok ile parola yanlış aynı mesajı döner. Birden çok işyerinde üyeliğiniz varsa girişte işyeri kodu istenir.İki adımlı doğrulama (TOTP)
Poyra, RFC 6238 standardında zamana dayalı tek kullanımlık kod kullanır — Google Authenticator, Aegis, 1Password gibi her TOTP uygulamasıyla çalışır.- Kurulumdaki QR ayrı bir uçtan servis edilir; sır ne HTML’e ne adrese yazılır.
- Kurtarma kodları bir kez gösterilir (
84213-90711biçiminde 8 kod); veritabanında yalnız özetleri durur. Yazıcıdan çıkarın ya da parola kasanıza koyun — her kod tek kullanımlıktır. - Girişte kod ekranında “Bu cihazı 30 gün hatırla” seçeneği vardır: tarayıcıya opak bir cihaz çerezi yazılır, sunucuda yalnız özeti tutulur.
- 2FA’yı kapatmak oturum yetmez: mevcut uygulama kodu ya da kurtarma kodu ister ve onay kutuludur. Kapatınca kurtarma kodları ve hatırlanan cihazlar da iptal olur.
- İşyeri sahibi, ayrıcalıklı roller (owner/admin) için 2FA’yı zorunlu kılabilir. Zorunluluk açıkken 2FA’sız ayrıcalıklı kullanıcı kilitlenmez — girişte Güvenlik sayfasına, kuruluma yönlendirilir; sahibi dışarıda bırakmak onarımı imkânsız kılardı.
Parola akışları
- Parolamı unuttum: yanıt, adresin kayıtlı olup olmamasından bağımsız aynıdır. Bağlantı 1 saat geçerli ve tek kullanımlıktır; aynı anda tek geçerli bağlantı olur (yenisi eskisini geçersiz kılar).
- Sıfırlama parolayı değiştirir, tüm oturumları ve yenileme jetonlarını kapatır; jeton adres satırında bırakılmaz, gizli alanda taşınır.
- Parola değişti e-postası hesap sahibine her durumda gider — ele geçirmeyi fark etmenin yolu budur.
- E-posta doğrulama girişi engellemez; her sayfanın üstünde uyarı bandı çıkar. Doğrulama bağlantısı GET ile tüketilmez (posta tarayıcıları tek kullanımlık jetonu yakıyordu) — sayfadaki onay düğmesi tüketir.
Roller
Altı rol, artan yetkiyle sıralanır; her aksiyonun asgari eşiği vardır ve sunucu tarafında yeniden denetlenir:
Ekip sayfasındaki korkuluklar: kimse kendi rütbesinin üstünde rol dağıtamaz,
kendi rolünü düşüremez, kendi erişimini kaldıramaz; son sahip indirilmez ve
kaldırılamaz. Erişimi kaldırılan kullanıcının açık oturumları anında kapanır.