ilk
This commit is contained in:
42
svc/services/auth.go
Normal file
42
svc/services/auth.go
Normal file
@@ -0,0 +1,42 @@
|
||||
package services
|
||||
|
||||
import (
|
||||
"bssapp-backend/models"
|
||||
"strings"
|
||||
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
)
|
||||
|
||||
// CheckPasswordWithLegacy
|
||||
// - SADECE doğrulama yapar
|
||||
// - DB write YAPMAZ
|
||||
// - Migration kararını caller verir
|
||||
func CheckPasswordWithLegacy(user *models.User, plain string) bool {
|
||||
if user == nil {
|
||||
return false
|
||||
}
|
||||
|
||||
plain = strings.TrimSpace(plain)
|
||||
if plain == "" {
|
||||
return false
|
||||
}
|
||||
|
||||
stored := strings.TrimSpace(user.Upass)
|
||||
if stored == "" {
|
||||
return false
|
||||
}
|
||||
|
||||
// 1️⃣ bcrypt hash mi?
|
||||
if isBcryptHash(stored) {
|
||||
return bcrypt.CompareHashAndPassword([]byte(stored), []byte(plain)) == nil
|
||||
}
|
||||
|
||||
// 2️⃣ TAM LEGACY — düz metin (eski kayıtlar)
|
||||
return stored == plain
|
||||
}
|
||||
|
||||
func isBcryptHash(s string) bool {
|
||||
return strings.HasPrefix(s, "$2a$") ||
|
||||
strings.HasPrefix(s, "$2b$") ||
|
||||
strings.HasPrefix(s, "$2y$")
|
||||
}
|
||||
Reference in New Issue
Block a user