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 != "" { // 从ServerAddress提取域名作为RPID // ServerAddress可能是 "https://newapi.pro" 这种格式 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 }