Multica Docs

Giriş ve kayıt olma

E-posta doğrulama kodlarını, Google ile girişi ve kimlerin kayıt olabileceğini yapılandırın.

Multica, kullanıcıları varsayılan olarak e-posta doğrulama kodlarıyla giriş yaptırır; üzerine Google OAuth eklenebilir. Mevcut kullanıcılar her zaman tekrar giriş yapabilir — kayıt kısıtlamaları yalnızca yeni hesap oluşturulup oluşturulamayacağına karar verir.

E-posta doğrulama kodları

Kullanıcı bir e-posta adresi girdikten sonra Multica 6 haneli bir doğrulama kodu gönderir. Kod 10 dakika geçerlidir; doğrulandığında tarayıcı bir giriş çerezi alır.

E-posta, Resend veya SMTP üzerinden gönderilebilir. İkisi de yapılandırıldığında SMTP_HOST önceliklidir.

Resend kullanma

  1. Resend'de bir gönderim alan adını doğrulayın ve bir API anahtarı oluşturun.

  2. Ayarlayın:

    RESEND_API_KEY=re_xxxxxxxxxxxxxxxx
    RESEND_FROM_EMAIL=noreply@example.com
  3. API hizmetini yeniden başlatın.

RESEND_FROM_EMAIL, Resend'de zaten doğrulanmış bir alan adına ait olmalıdır.

SMTP kullanma

En azından, host'u ve gönderen adresini ayarlayın:

SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_USERNAME=multica
SMTP_PASSWORD=<password>
SMTP_FROM_EMAIL=noreply@example.com

Yaygın bağlantı modları:

SenaryoYapılandırma
Dahili anonim relaySMTP_PORT=25, kullanıcı adı ve parolayı boş bırakın
STARTTLSSMTP_PORT=587; sunucu destekliyorsa varsayılan olarak TLS'e yükseltir
Dolaylı TLSSMTP_PORT=465, veya SMTP_TLS=implicit'i açıkça ayarlayın

SMTP_FROM_EMAIL ayarlanmamışsa RESEND_FROM_EMAIL'e geri döner. Özel CA'lar veya kendinden imzalı sertifikalar, CA'nın container güven deposuna eklenmesini gerektirir; SMTP_TLS_INSECURE=true sertifika doğrulamasını atlar ve yalnızca güvenilen bir dahili ağda geçici olarak kullanılmalıdır.

Bazı katı aktarıcılar ayrıca geçerli bir EHLO adı gerektirir:

SMTP_EHLO_NAME=mail.example.com

Bir e-posta hizmeti olmadan davranış

Sunucu yine de başlar, ama doğrulama kodları ve davet bağlantıları yalnızca loga yazılır; hiçbir e-posta gönderilmez. Bu, yerel geliştirme için uygundur, üretim için değil.

Başlangıç logu, geçerli modun Resend API, SMTP relay veya DEV mode olduğunu belirtir.

Sabit yerel doğrulama kodu

Yerel otomatik testler sabit bir doğrulama kodu ayarlayabilir:

APP_ENV=development
MULTICA_DEV_VERIFICATION_CODE=888888

Kod 6 haneli olmalıdır. APP_ENV=production olduğunda sabit kod yok sayılır.

Herkese açık erişilebilir bir örnekte sabit bir kodu etkinleştirmeyin. Üretim kombinasyonu, boş bir MULTICA_DEV_VERIFICATION_CODE ile APP_ENV=production'dır.

Google ile giriş

  1. Google Cloud Console'da bir OAuth 2.0 istemcisi oluşturun.

  2. Multica ön ucunun geri çağırma URL'sini Authorized redirect URIs'e ekleyin:

    https://multica.example.com/auth/callback
  3. Ayarlayın:

    GOOGLE_CLIENT_ID=xxxxx.apps.googleusercontent.com
    GOOGLE_CLIENT_SECRET=GOCSPX-xxxxxxxxxxxxxxx
    GOOGLE_REDIRECT_URI=https://multica.example.com/auth/callback
  4. API hizmetini yeniden başlatın.

Google Console'daki ve GOOGLE_REDIRECT_URI'deki URL'ler; protokol, port ve sondaki eğik çizgi dahil tam olarak eşleşmelidir. Yapılandırıldıktan sonra giriş sayfası bir Google ile giriş düğmesi gösterir; ön uç imajının yeniden derlenmesi gerekmez.

Kayıt kısıtlamaları

Üç değişken birlikte, yeni bir hesap oluşturulup oluşturulamayacağına karar verir:

DeğişkenEtkisi
ALLOWED_EMAILSKayıt olmasına izin verilen tam e-posta adresleri, virgülle ayrılmış
ALLOWED_EMAIL_DOMAINSKayıt olmasına izin verilen e-posta alan adları, virgülle ayrılmış
ALLOW_SIGNUPHiçbir izin listesi yapılandırılmadığında kaydın izinli olup olmadığı; varsayılan true

Değerlendirme sırası:

  1. E-posta ALLOWED_EMAILS ile eşleşir — izin ver.
  2. Ya da alan adı ALLOWED_EMAIL_DOMAINS ile eşleşir — izin ver.
  3. Hiçbir izin listesi yapılandırılmamışsa ve ALLOW_SIGNUP=true ise — izin ver.
  4. Aksi halde, e-postanın bekleyen ve süresi dolmamış bir çalışma alanı daveti varsa — izin ver.
  5. Aksi halde — reddet.

Yaygın yapılandırmalar:

# Şirket alan adı ve davet edilen kullanıcılar
ALLOW_SIGNUP=false
ALLOWED_EMAIL_DOMAINS=company.com

# Ayrıca bir dış işbirlikçiyi de kabul et
ALLOWED_EMAILS=partner@example.net

ALLOW_SIGNUP=false olduğunda her iki izin listesi de açık bir istisna listesi olarak çalışır.

Davetler ve kayıt kısıtlamaları

Bekleyen ve süresi dolmamış bir çalışma alanı daveti, ALLOW_SIGNUP=false olsa veya adres ALLOWED_EMAILS ya da ALLOWED_EMAIL_DOMAINS ile eşleşmese bile, o e-posta adresinin hesap oluşturmasına izin verir. Bu istisna, bir izin listesi yapılandırılmış ve ALLOW_SIGNUP=true olduğunda da geçerlidir: izin listeleri davet edilen kullanıcılara karşı kesin bir sınır değildir.

Mevcut kullanıcılar giriş yapmaya devam edebilir. Eşleşen bir izin listesi kaydı veya açık kayıt olmayan yeni kullanıcılar, bekleyen ve süresi dolmamış bir davete ihtiyaç duyar; olmayan, süresi dolmuş, kabul edilmiş, reddedilmiş ve iptal edilmiş davetler kayıt izni vermez. Davet, giriş kodu istenirken ve hesap oluşturulurken (Google ile giriş dahil) yeniden kontrol edilir.

Sıradan davetlileri ALLOWED_EMAILS'e eklemeniz veya sunucuyu yeniden başlatmanız gerekmez. Çalışma alanına katılmak için davetin yine de normal davet akışıyla kabul edilmesi gerekir.

Bir daveti iptal etmek, onunla zaten oluşturulmuş bir hesabı silmez veya o mevcut hesabın giriş yapmasını engellemez.

Oturum ömrü

Oturumlar kayar. Aşağıdaki ömür, girişten itibaren işleyen bir geri sayım değil, bir boşta kalma sınırıdır: bir oturum bu sürenin yarısının altına düştüğünde, sonraki istek onu yeniden tam ömürle verir; böylece sürekli kullanılan bir hesabın oturumu belirli bir takvime göre asla kapanmaz. Mutlak bir üst sınır yoktur.

Sınır tek yönlüdür. Bir oturum yalnızca yarı noktayı geçtikten sonra yeniden verilir; bu yüzden ömrünün yarısından fazlası kalmışken son kez kullanılan bir oturum uzatılmaz — her zaman atlatılabilen boşta kalma aralığı aşağıdaki değerin tamamı değil, yarısıdır.

Bir Go süresi veya pozitif bir tam sayı saniye kabul eden AUTH_TOKEN_TTL ile ayarlayın:

AUTH_TOKEN_TTL=720h

En düşük değer 60s'dir; daha kısa her değer buna yükseltilir ve başlangıçta bir uyarı günlüğe yazılır. Bunun altında, sunucunun türettiği yenileme sıklığı istemcilerin uyguladığı alt sınırın altına düşer ve istemciler yenilemeyi oturumun dayanabileceğinden daha seyrek kontrol eder.

Değiştirdikten sonra API hizmetini yeniden başlatın. Değer bundan sonra verilen veya yeniden verilen oturumlara uygulanır — oturumlar kaydığı için mevcut bir oturum, bir sonraki yeniden verilişinde yeni ömrü alır.

Sonraki adımlar