feat(auth): make password encryption opt-in #6743

This commit is contained in:
CaIon
2026-08-29 20:54:07 +08:00
parent 8454082f93
commit 918427d8ab
9 changed files with 46 additions and 9 deletions
+10 -1
View File
@@ -40,12 +40,17 @@ var (
)
func GetPasswordEncryptionKey(c *gin.Context) {
if !common.PasswordLoginEncryptionEnabled {
common.ApiSuccess(c, gin.H{"enabled": false})
return
}
keyID, publicKey := common.PasswordEncryptionPublicKey()
if keyID == "" || publicKey == "" {
common.ApiErrorI18n(c, i18n.MsgDatabaseError)
return
}
common.ApiSuccess(c, gin.H{
"enabled": true,
"kid": keyID,
"public_key": publicKey,
})
@@ -64,7 +69,11 @@ func Login(c *gin.Context) {
}
username := loginRequest.Username
password := loginRequest.Password
if loginRequest.PasswordEncrypted != "" {
if common.PasswordLoginEncryptionEnabled {
if loginRequest.PasswordEncrypted == "" || loginRequest.EncryptionKeyID == "" {
common.ApiErrorI18n(c, i18n.MsgInvalidParams)
return
}
password, err = common.DecryptPassword(loginRequest.PasswordEncrypted, loginRequest.EncryptionKeyID)
if err != nil {
common.ApiErrorI18n(c, i18n.MsgUserUsernameOrPasswordError)