v0.1.28: email-идентичность — детерминированные креды из email, credentials-эндпоинт, UI модалка

This commit is contained in:
“Naeel”
2026-08-14 09:43:36 +04:00
parent 87ecf3b5ca
commit e19f63abe4
5 changed files with 125 additions and 72 deletions
-10
View File
@@ -7,7 +7,6 @@ package auth
import (
"context"
"crypto/sha256"
"encoding/base64"
"encoding/json"
"fmt"
@@ -65,15 +64,6 @@ func ParseJWTClaims(token string) (*JWTClaims, error) {
return &claims, nil
}
// TenantIDFromSub — вычисляет tenant ID из JWT subject (sub claim).
// Алгоритм совместим с sless: SHA256(sub) → первые 8 байт → hex → "sless-{16hex}".
// Длина: 6 + 16 = 22 символа. Детерминирован, необратим.
// Почему "sless-" а не "ssq-": единый namespace для всех сервисов (IoT, funcs, SQS).
func TenantIDFromSub(sub string) string {
hash := sha256.Sum256([]byte(sub))
return fmt.Sprintf("sless-%x", hash[:8])
}
// nubesAPIEndpoints — стенды Nubes API Gateway, по которым валидируется токен.
// Токен принимается, если ХОТЯ БЫ ОДИН стенд его принял.
// Юзер может вводить токен от любого стенда — главное, что токен действительный.