/
ctx.go
37 lines (32 loc) · 915 Bytes
/
ctx.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
package cool
import (
"context"
"github.com/gogf/gf/v2/encoding/gjson"
"github.com/gogf/gf/v2/frame/g"
"github.com/golang-jwt/jwt/v4"
)
type Claims struct {
IsRefresh bool `json:"isRefresh"`
RoleIds []string `json:"roleIds"`
Username string `json:"username"`
UserId uint `json:"userId"`
PasswordVersion *int32 `json:"passwordVersion"`
jwt.RegisteredClaims
}
type Admin struct {
IsRefresh bool `json:"isRefresh"`
RoleIds []string `json:"roleIds"`
Username string `json:"username"`
UserId uint `json:"userId"`
PasswordVersion *int32 `json:"passwordVersion"`
}
// 获取传入ctx 中的 admin 对象
func GetAdmin(ctx context.Context) *Admin {
r := g.RequestFromCtx(ctx)
admin := &Admin{}
err := gjson.New(r.GetCtxVar("admin").String()).Scan(admin)
if err != nil {
g.Log().Error(ctx, err)
}
return admin
}