Skip to content

Commit 5e6af5a

Browse files
committed
feat: add password support
1 parent 6f84288 commit 5e6af5a

2 files changed

Lines changed: 13 additions & 9 deletions

File tree

config/config.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ var Config struct {
1919
MipushKeyPath string `env:"MIPUSH_KEY_PATH" envDefault:"data/mipush.pem"`
2020
APNSKeyPath string `env:"APNS_KEY_PATH" envDefault:"data/apns.pem"`
2121
APNSKeyPathV2 string `env:"APNS_KEY_PATH_V2" envDefault:"data/apns_v2.p8"`
22+
APNSKeyPassword string `env:"APNS_KEY_PASSWORD" envDefault:""`
23+
APNSKeyPasswordV2 string `env:"APNS_KEY_PASSWORD_V2" envDefault:""`
2224
IOSPackageName string `env:"IOS_PACKAGE_NAME" envDefault:"io.github.danxi-dev.dan-xi"`
2325
IOSPackageNameV2 string `env:"IOS_PACKAGE_NAME_V2" envDefault:"com.fduhole.danxi"`
2426
AndroidPackageName string `env:"ANDROID_PACKAGE_NAME" envDefault:"io.github.danxi_dev.dan_xi"`

push/apns/init.go

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,34 +16,36 @@ var clientV2 *apns2.Client
1616

1717
func init() {
1818
// init apns for DanXi v1
19-
initAPNS(config.Config.APNSKeyPath, &client)
19+
client = newAPNSClient(config.Config.APNSKeyPath, config.Config.APNSKeyPassword)
2020

2121
// init apns for DanXi v2
22-
initAPNS(config.Config.APNSKeyPathV2, &clientV2)
22+
clientV2 = newAPNSClient(config.Config.APNSKeyPathV2, config.Config.APNSKeyPasswordV2)
2323
}
2424

25-
// initAPNS init apns
26-
func initAPNS(path string, client **apns2.Client) {
25+
// newAPNSClient create apns client from cert file and password
26+
func newAPNSClient(path string, password string) (client *apns2.Client) {
2727
var (
2828
err error
2929
cert tls.Certificate
3030
)
3131

3232
if strings.HasSuffix(path, ".p12") {
33-
cert, err = certificate.FromP12File(path, "")
33+
cert, err = certificate.FromP12File(path, password)
3434
} else {
35-
cert, err = certificate.FromPemFile(path, "")
35+
cert, err = certificate.FromPemFile(path, password)
3636
}
3737

3838
if err != nil {
3939
log.Warn().Err(err).Str("scope", "init APNs").Msg("APNs cert error")
40-
return
40+
return nil
4141
}
4242
if config.Config.Mode == "dev" {
43-
*client = apns2.NewClient(cert).Development()
43+
client = apns2.NewClient(cert).Development()
4444
log.Debug().Msg("init apns; use development mode")
4545
} else {
46-
*client = apns2.NewClient(cert).Production()
46+
client = apns2.NewClient(cert).Production()
4747
log.Debug().Msg("init apns; use production mode")
4848
}
49+
50+
return
4951
}

0 commit comments

Comments
 (0)