-
Notifications
You must be signed in to change notification settings - Fork 0
/
JwtSettings.go
68 lines (54 loc) · 1.53 KB
/
JwtSettings.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package goboot
import (
"github.com/lamgor666/goboot-common/util/castx"
"time"
)
type JwtSettings struct {
issuer string
ttl time.Duration
refreshTokenTtl time.Duration
publicKeyPemFile string
privateKeyPemFile string
}
func NewJwtSettings(settings map[string]interface{}) *JwtSettings {
var issuer string
if s1, ok := settings["issuer"].(string); ok && s1 != "" {
issuer = s1
} else if s1, ok := settings["iss"].(string); ok && s1 != "" {
issuer = s1
}
var ttl time.Duration
if d1, ok := settings["ttl"].(time.Duration); ok {
ttl = d1
} else if s1, ok := settings["ttl"].(string); ok && s1 != "" {
ttl = castx.ToDuration(ttl)
}
var refreshTokenTtl time.Duration
if d1, ok := settings["refreshTokenTtl"].(time.Duration); ok {
refreshTokenTtl = d1
} else if s1, ok := settings["refreshTokenTtl"].(string); ok && s1 != "" {
refreshTokenTtl = castx.ToDuration(ttl)
}
return &JwtSettings{
issuer: issuer,
ttl: ttl,
refreshTokenTtl: refreshTokenTtl,
publicKeyPemFile: castx.ToString(settings["publicKeyPemFile"]),
privateKeyPemFile: castx.ToString(settings["privateKeyPemFile"]),
}
}
func (st *JwtSettings) Issuer() string {
return st.issuer
}
func (st *JwtSettings) Ttl() time.Duration {
return st.ttl
}
func (st *JwtSettings) RefreshTokenTtl() time.Duration {
return st.refreshTokenTtl
}
func (st *JwtSettings) PublicKeyPemFile() string {
return st.publicKeyPemFile
}
func (st *JwtSettings) PrivateKeyPemFile() string {
return st.privateKeyPemFile
}