Skip to content

Commit 9624e76

Browse files
authored
fix: (#1242)
* feat:perfect * fix:buffer time * fix:zap freifx
1 parent 8ec7bd7 commit 9624e76

File tree

4 files changed

+61
-6
lines changed

4 files changed

+61
-6
lines changed

server/config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jwt:
1010
zap:
1111
level: info
1212
format: console
13-
prefix: [github.com/flipped-aurora/gin-vue-admin/server]
13+
prefix: "[github.com/flipped-aurora/gin-vue-admin/server]"
1414
director: log
1515
show-line: true
1616
encode-level: LowercaseColorLevelEncoder

server/utils/human_duration.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,21 @@ import (
77
)
88

99
func ParseDuration(d string) (time.Duration, error) {
10+
d = strings.TrimSpace(d)
1011
dr, err := time.ParseDuration(d)
1112
if err == nil {
1213
return dr, nil
1314
}
14-
if strings.HasSuffix(d, "d") {
15-
h := strings.TrimSuffix(d, "d")
16-
hour, _ := strconv.Atoi(h)
15+
if strings.Contains(d, "d") {
16+
index := strings.Index(d, "d")
17+
18+
hour, _ := strconv.Atoi(d[:index])
1719
dr = time.Hour * 24 * time.Duration(hour)
18-
return dr, nil
20+
ndr, err := time.ParseDuration(d[index+1:])
21+
if err != nil {
22+
return dr, nil
23+
}
24+
return dr + ndr, nil
1925
}
2026

2127
dv, err := strconv.ParseInt(d, 10, 64)
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package utils
2+
3+
import (
4+
"testing"
5+
"time"
6+
)
7+
8+
func TestParseDuration(t *testing.T) {
9+
type args struct {
10+
d string
11+
}
12+
tests := []struct {
13+
name string
14+
args args
15+
want time.Duration
16+
wantErr bool
17+
}{
18+
{
19+
name: "5h20m",
20+
args: args{"5h20m"},
21+
want: time.Hour*5 + 20*time.Minute,
22+
wantErr: false,
23+
},
24+
{
25+
name: "1d5h20m",
26+
args: args{"1d5h20m"},
27+
want: 24*time.Hour + time.Hour*5 + 20*time.Minute,
28+
wantErr: false,
29+
},
30+
{
31+
name: "1d",
32+
args: args{"1d"},
33+
want: 24 * time.Hour,
34+
wantErr: false,
35+
},
36+
}
37+
for _, tt := range tests {
38+
t.Run(tt.name, func(t *testing.T) {
39+
got, err := ParseDuration(tt.args.d)
40+
if (err != nil) != tt.wantErr {
41+
t.Errorf("ParseDuration() error = %v, wantErr %v", err, tt.wantErr)
42+
return
43+
}
44+
if got != tt.want {
45+
t.Errorf("ParseDuration() got = %v, want %v", got, tt.want)
46+
}
47+
})
48+
}
49+
}

server/utils/jwt.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ func (j *JWT) CreateClaims(baseClaims request.BaseClaims) request.CustomClaims {
3232
ep, _ := ParseDuration(global.GVA_CONFIG.JWT.ExpiresTime)
3333
claims := request.CustomClaims{
3434
BaseClaims: baseClaims,
35-
BufferTime: int64(bf), // 缓冲时间1天 缓冲时间内会获得新的token刷新令牌 此时一个用户会存在两个有效令牌 但是前端只留一个 另一个会丢失
35+
BufferTime: int64(bf / time.Second), // 缓冲时间1天 缓冲时间内会获得新的token刷新令牌 此时一个用户会存在两个有效令牌 但是前端只留一个 另一个会丢失
3636
StandardClaims: jwt.StandardClaims{
3737
NotBefore: time.Now().Unix() - 1000, // 签名生效时间
3838
ExpiresAt: time.Now().Add(ep).Unix(), // 过期时间 7天 配置文件

0 commit comments

Comments
 (0)