v0.1.28: email-идентичность — детерминированные креды из email, credentials-эндпоинт, UI модалка
This commit is contained in:
@@ -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, по которым валидируется токен.
|
||||
// Токен принимается, если ХОТЯ БЫ ОДИН стенд его принял.
|
||||
// Юзер может вводить токен от любого стенда — главное, что токен действительный.
|
||||
|
||||
Reference in New Issue
Block a user