|
|
package system_setting |
|
|
|
|
|
import ( |
|
|
"net/url" |
|
|
"strings" |
|
|
|
|
|
"github.com/QuantumNous/new-api/common" |
|
|
"github.com/QuantumNous/new-api/setting/config" |
|
|
) |
|
|
|
|
|
type PasskeySettings struct { |
|
|
Enabled bool `json:"enabled"` |
|
|
RPDisplayName string `json:"rp_display_name"` |
|
|
RPID string `json:"rp_id"` |
|
|
Origins string `json:"origins"` |
|
|
AllowInsecureOrigin bool `json:"allow_insecure_origin"` |
|
|
UserVerification string `json:"user_verification"` |
|
|
AttachmentPreference string `json:"attachment_preference"` |
|
|
} |
|
|
|
|
|
var defaultPasskeySettings = PasskeySettings{ |
|
|
Enabled: false, |
|
|
RPDisplayName: common.SystemName, |
|
|
RPID: "", |
|
|
Origins: "", |
|
|
AllowInsecureOrigin: false, |
|
|
UserVerification: "preferred", |
|
|
AttachmentPreference: "", |
|
|
} |
|
|
|
|
|
func init() { |
|
|
config.GlobalConfig.Register("passkey", &defaultPasskeySettings) |
|
|
} |
|
|
|
|
|
func GetPasskeySettings() *PasskeySettings { |
|
|
if defaultPasskeySettings.RPID == "" && ServerAddress != "" { |
|
|
|
|
|
|
|
|
serverAddr := strings.TrimSpace(ServerAddress) |
|
|
if parsed, err := url.Parse(serverAddr); err == nil && parsed.Host != "" { |
|
|
defaultPasskeySettings.RPID = parsed.Host |
|
|
} else { |
|
|
defaultPasskeySettings.RPID = serverAddr |
|
|
} |
|
|
} |
|
|
if defaultPasskeySettings.Origins == "" || defaultPasskeySettings.Origins == "[]" { |
|
|
defaultPasskeySettings.Origins = ServerAddress |
|
|
} |
|
|
return &defaultPasskeySettings |
|
|
} |
|
|
|