Files
full/apps/base/passport/internal/config/config.go

68 lines
1.7 KiB
Go

package config
import (
"net"
"time"
"git.apinb.com/bsm-sdk/core/conf"
_vars "git.apinb.com/bsm-sdk/core/vars"
)
var (
Spec SrvConfig
)
type SrvConfig struct {
conf.Base `yaml:",inline"`
Databases *conf.DBConf `yaml:"Databases"`
MicroService *conf.MicroServiceConf `yaml:"MicroService"`
Rpc map[string]conf.RpcConf `yaml:"Rpc"`
Gateway *conf.GatewayConf `yaml:"Gateway"`
Apm *conf.ApmConf `yaml:"APM"`
Etcd *conf.EtcdConf `yaml:"Etcd"`
WeChat *WeChatConf `yaml:"WeChatConf"`
Token *TokenConf `yaml:"Token"`
Kyc *KycConf `yaml:"Kyc"`
}
type KycConf struct {
Provider string `yaml:"Provider"`
BaseUrl string `yaml:"BaseUrl"`
ApiSecret string `yaml:"ApiSecret"`
ApiToken string `yaml:"ApiToken"`
ApiArgs string `yaml:"ApiArgs"`
}
type TokenConf struct {
Prefix string `yaml:"Prefix"`
Expire int `yaml:"Expire"`
}
type WeChatConf struct {
AppID string `json:"app_id"`
AppSecret string `json:"app_secret"`
}
func New(srvKey string) {
// 初始化配置 创建一个新的配置实例,用于服务配置
conf.New(srvKey, &Spec)
// 配置校验 服务IP,端口; 端口如果不合规,则随机分配端口
Spec.Port = conf.CheckPort(Spec.Port)
Spec.BindIP = conf.CheckIP(Spec.BindIP)
Spec.Addr = net.JoinHostPort(Spec.BindIP, Spec.Port)
// 配置校验 服务名称地址及监听地址不能为空
conf.NotNil(Spec.Service, Spec.Cache)
// 配置JWT过期时间
if Spec.Token != nil && Spec.Token.Expire > 0 {
_vars.JwtExpire = time.Duration(Spec.Token.Expire * int(time.Second))
} else {
// 默认24小时过期
_vars.JwtExpire = 24 * time.Hour
}
conf.PrintInfo(Spec.Addr)
}