feat: 前端不显示敏感信息

This commit is contained in:
CaIon 2024-04-18 17:52:18 +08:00
parent 6e54f01435
commit 818bd824da
9 changed files with 129 additions and 120 deletions

View File

@ -9,15 +9,6 @@ import (
"github.com/google/uuid" "github.com/google/uuid"
) )
// Pay Settings
var PayAddress = ""
var CustomCallbackAddress = ""
var EpayId = ""
var EpayKey = ""
var Price = 7.3
var MinTopUp = 1
var StartTime = time.Now().Unix() // unit: second var StartTime = time.Now().Unix() // unit: second
var Version = "v0.0.0" // this hard coding will be replaced automatically when building, no need to manually change var Version = "v0.0.0" // this hard coding will be replaced automatically when building, no need to manually change
var SystemName = "New API" var SystemName = "New API"

8
constant/payment.go Normal file
View File

@ -0,0 +1,8 @@
package constant
var PayAddress = ""
var CustomCallbackAddress = ""
var EpayId = ""
var EpayKey = ""
var Price = 7.3
var MinTopUp = 1

View File

@ -46,8 +46,8 @@ func GetStatus(c *gin.Context) {
"wechat_qrcode": common.WeChatAccountQRCodeImageURL, "wechat_qrcode": common.WeChatAccountQRCodeImageURL,
"wechat_login": common.WeChatAuthEnabled, "wechat_login": common.WeChatAuthEnabled,
"server_address": common.ServerAddress, "server_address": common.ServerAddress,
"price": common.Price, "price": constant.Price,
"min_topup": common.MinTopUp, "min_topup": constant.MinTopUp,
"turnstile_check": common.TurnstileCheckEnabled, "turnstile_check": common.TurnstileCheckEnabled,
"turnstile_site_key": common.TurnstileSiteKey, "turnstile_site_key": common.TurnstileSiteKey,
"top_up_link": common.TopUpLink, "top_up_link": common.TopUpLink,
@ -60,7 +60,7 @@ func GetStatus(c *gin.Context) {
"enable_data_export": common.DataExportEnabled, "enable_data_export": common.DataExportEnabled,
"data_export_default_time": common.DataExportDefaultTime, "data_export_default_time": common.DataExportDefaultTime,
"default_collapse_sidebar": common.DefaultCollapseSidebar, "default_collapse_sidebar": common.DefaultCollapseSidebar,
"enable_online_topup": common.PayAddress != "" && common.EpayId != "" && common.EpayKey != "", "enable_online_topup": constant.PayAddress != "" && constant.EpayId != "" && constant.EpayKey != "",
"mj_notify_enabled": constant.MjNotifyEnabled, "mj_notify_enabled": constant.MjNotifyEnabled,
}, },
}) })

View File

@ -14,7 +14,7 @@ func GetOptions(c *gin.Context) {
var options []*model.Option var options []*model.Option
common.OptionMapRWMutex.Lock() common.OptionMapRWMutex.Lock()
for k, v := range common.OptionMap { for k, v := range common.OptionMap {
if strings.HasSuffix(k, "Token") || strings.HasSuffix(k, "Secret") { if strings.HasSuffix(k, "Token") || strings.HasSuffix(k, "Secret") || strings.HasSuffix(k, "Key") {
continue continue
} }
options = append(options, &model.Option{ options = append(options, &model.Option{

View File

@ -5,6 +5,7 @@ import (
"github.com/Calcium-Ion/go-epay/epay" "github.com/Calcium-Ion/go-epay/epay"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/samber/lo" "github.com/samber/lo"
"one-api/constant"
"log" "log"
"net/url" "net/url"
@ -28,13 +29,13 @@ type AmountRequest struct {
} }
func GetEpayClient() *epay.Client { func GetEpayClient() *epay.Client {
if common.PayAddress == "" || common.EpayId == "" || common.EpayKey == "" { if constant.PayAddress == "" || constant.EpayId == "" || constant.EpayKey == "" {
return nil return nil
} }
withUrl, err := epay.NewClient(&epay.Config{ withUrl, err := epay.NewClient(&epay.Config{
PartnerID: common.EpayId, PartnerID: constant.EpayId,
Key: common.EpayKey, Key: constant.EpayKey,
}, common.PayAddress) }, constant.PayAddress)
if err != nil { if err != nil {
return nil return nil
} }
@ -50,12 +51,12 @@ func getPayMoney(amount float64, user model.User) float64 {
if topupGroupRatio == 0 { if topupGroupRatio == 0 {
topupGroupRatio = 1 topupGroupRatio = 1
} }
payMoney := amount * common.Price * topupGroupRatio payMoney := amount * constant.Price * topupGroupRatio
return payMoney return payMoney
} }
func getMinTopup() int { func getMinTopup() int {
minTopup := common.MinTopUp minTopup := constant.MinTopUp
if !common.DisplayInCurrencyEnabled { if !common.DisplayInCurrencyEnabled {
minTopup = minTopup * int(common.QuotaPerUnit) minTopup = minTopup * int(common.QuotaPerUnit)
} }

View File

@ -63,8 +63,8 @@ func InitOptionMap() {
common.OptionMap["CustomCallbackAddress"] = "" common.OptionMap["CustomCallbackAddress"] = ""
common.OptionMap["EpayId"] = "" common.OptionMap["EpayId"] = ""
common.OptionMap["EpayKey"] = "" common.OptionMap["EpayKey"] = ""
common.OptionMap["Price"] = strconv.FormatFloat(common.Price, 'f', -1, 64) common.OptionMap["Price"] = strconv.FormatFloat(constant.Price, 'f', -1, 64)
common.OptionMap["MinTopUp"] = strconv.Itoa(common.MinTopUp) common.OptionMap["MinTopUp"] = strconv.Itoa(constant.MinTopUp)
common.OptionMap["TopupGroupRatio"] = common.TopupGroupRatio2JSONString() common.OptionMap["TopupGroupRatio"] = common.TopupGroupRatio2JSONString()
common.OptionMap["GitHubClientId"] = "" common.OptionMap["GitHubClientId"] = ""
common.OptionMap["GitHubClientSecret"] = "" common.OptionMap["GitHubClientSecret"] = ""
@ -227,17 +227,17 @@ func updateOptionMap(key string, value string) (err error) {
case "ServerAddress": case "ServerAddress":
common.ServerAddress = value common.ServerAddress = value
case "PayAddress": case "PayAddress":
common.PayAddress = value constant.PayAddress = value
case "CustomCallbackAddress": case "CustomCallbackAddress":
common.CustomCallbackAddress = value constant.CustomCallbackAddress = value
case "EpayId": case "EpayId":
common.EpayId = value constant.EpayId = value
case "EpayKey": case "EpayKey":
common.EpayKey = value constant.EpayKey = value
case "Price": case "Price":
common.Price, _ = strconv.ParseFloat(value, 64) constant.Price, _ = strconv.ParseFloat(value, 64)
case "MinTopUp": case "MinTopUp":
common.MinTopUp, _ = strconv.Atoi(value) constant.MinTopUp, _ = strconv.Atoi(value)
case "TopupGroupRatio": case "TopupGroupRatio":
err = common.UpdateTopupGroupRatioByJSONString(value) err = common.UpdateTopupGroupRatioByJSONString(value)
case "GitHubClientId": case "GitHubClientId":

View File

@ -1,10 +1,13 @@
package service package service
import "one-api/common" import (
"one-api/common"
"one-api/constant"
)
func GetCallbackAddress() string { func GetCallbackAddress() string {
if common.CustomCallbackAddress == "" { if constant.CustomCallbackAddress == "" {
return common.ServerAddress return common.ServerAddress
} }
return common.CustomCallbackAddress return constant.CustomCallbackAddress
} }

View File

@ -312,7 +312,9 @@ const SystemSetting = () => {
<Grid columns={1}> <Grid columns={1}>
<Grid.Column> <Grid.Column>
<Form loading={loading} inverted={isDark}> <Form loading={loading} inverted={isDark}>
<Header as='h3' inverted={isDark}>通用设置</Header> <Header as='h3' inverted={isDark}>
通用设置
</Header>
<Form.Group widths='equal'> <Form.Group widths='equal'>
<Form.Input <Form.Input
label='服务器地址' label='服务器地址'
@ -346,7 +348,7 @@ const SystemSetting = () => {
/> />
<Form.Input <Form.Input
label='易支付商户密钥' label='易支付商户密钥'
placeholder='例如dejhfueqhujasjmndbjkqaw' placeholder='敏感信息不会发送到前端显示'
value={inputs.EpayKey} value={inputs.EpayKey}
name='EpayKey' name='EpayKey'
onChange={handleInputChange} onChange={handleInputChange}
@ -390,7 +392,9 @@ const SystemSetting = () => {
</Form.Group> </Form.Group>
<Form.Button onClick={submitPayAddress}>更新支付设置</Form.Button> <Form.Button onClick={submitPayAddress}>更新支付设置</Form.Button>
<Divider /> <Divider />
<Header as='h3' inverted={isDark}>配置登录注册</Header> <Header as='h3' inverted={isDark}>
配置登录注册
</Header>
<Form.Group inline> <Form.Group inline>
<Form.Checkbox <Form.Checkbox
checked={inputs.PasswordLoginEnabled === 'true'} checked={inputs.PasswordLoginEnabled === 'true'}
@ -684,7 +688,9 @@ const SystemSetting = () => {
保存 WeChat Server 设置 保存 WeChat Server 设置
</Form.Button> </Form.Button>
<Divider /> <Divider />
<Header as='h3' inverted={isDark}>配置 Telegram 登录</Header> <Header as='h3' inverted={isDark}>
配置 Telegram 登录
</Header>
<Form.Group inline> <Form.Group inline>
<Form.Input <Form.Input
label='Telegram Bot Token' label='Telegram Bot Token'