Newer
Older
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
69
package jwtmdl
import (
"time"
"corelab.mkcl.org/MKCLOS/coredevelopmentplatform/corepkgv2/authmdl/sessionmdl"
)
type Options struct {
Key string
UserID string
ClientIP string
Metadata string
Groups []string
ExpiresAt int64
Session sessionmdl.Session
}
type Option func(*Options)
func WithKey(k string) Option {
return func(args *Options) {
args.Key = k
}
}
func WithUserID(uid string) Option {
return func(args *Options) {
args.UserID = uid
}
}
func WithSession(sid, sessionFor string) Option {
return func(args *Options) {
args.Session = sessionmdl.Session{
SessionId: sid,
SessionFor: sessionFor,
}
}
}
func WithClientIP(ip string) Option {
return func(args *Options) {
args.ClientIP = ip
}
}
func WithMetaData(data string) Option {
return func(args *Options) {
args.Metadata = data
}
}
func WithGroups(gs []string) Option {
return func(args *Options) {
args.Groups = gs
}
}
func WithExpiration(e time.Duration) Option {
return func(args *Options) {
if e == 0 {
args.ExpiresAt = 0
return
}
args.ExpiresAt = time.Now().Add(e).Unix()
}
}