Skip to content

Commit c3661f7

Browse files
修复token验证问题
1 parent bf84401 commit c3661f7

File tree

2 files changed

+15
-21
lines changed

2 files changed

+15
-21
lines changed

common/token.go

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,6 @@ import (
77
"github.com/chanyipiaomiao/hltool"
88
)
99

10-
var (
11-
12-
// boltdb db操作对象
13-
tokenDb *hltool.BoltDB
14-
15-
// jwt 签名字符串
16-
signString string
17-
)
1810

1911
const (
2012

@@ -23,25 +15,28 @@ const (
2315
)
2416

2517
// Token 结构体
26-
type Token struct{}
18+
type Token struct{
19+
TokenDb *hltool.BoltDB
20+
SignString string
21+
22+
}
2723

2824
// NewToken 返回Token对象
2925
func NewToken() (*Token, error) {
30-
var err error
31-
tokenDb, err = hltool.NewBoltDB(DBPath, tokenTableName)
26+
tokenDb, err := hltool.NewBoltDB(DBPath, tokenTableName)
3227
if err != nil {
3328
return nil, err
3429
}
3530
signString := beego.AppConfig.String("security::jwtokenSignString")
3631
if signString == "" {
3732
return nil, fmt.Errorf("warning: in conf file jwtokenSignString must not null")
3833
}
39-
return &Token{}, nil
34+
return &Token{TokenDb:tokenDb, SignString: signString}, nil
4035
}
4136

4237
// GetToken 根据name获取token
4338
func (t *Token) GetToken(name string) (map[string][]byte, error) {
44-
result, err := tokenDb.Get([]string{name})
39+
result, err := t.TokenDb.Get([]string{name})
4540
if err != nil {
4641
return nil, fmt.Errorf("get token < %s > error: %s", name, err)
4742
}
@@ -69,7 +64,7 @@ func (t *Token) IsExistToken(name string) (bool, error) {
6964

7065
// IsTokenValid token是否有效
7166
func (t *Token) IsTokenValid(token string) (bool, error) {
72-
jwt := hltool.NewJWToken(signString)
67+
jwt := hltool.NewJWToken(t.SignString)
7368
parseToken, err := jwt.ParseJWToken(token)
7469
if err != nil {
7570
return false, err
@@ -80,7 +75,7 @@ func (t *Token) IsTokenValid(token string) (bool, error) {
8075
return false, err
8176
}
8277
if _, ok := dbToken[tokenName]; !ok {
83-
return false, nil
78+
return false, fmt.Errorf("token is not exist")
8479
}
8580
if string(dbToken[tokenName]) == token {
8681
return true, nil
@@ -91,7 +86,7 @@ func (t *Token) IsTokenValid(token string) (bool, error) {
9186

9287
// IsRootToken 是否是root token,root token 不能被用来请求
9388
func (t *Token) IsRootToken(token string) (bool, error) {
94-
jwt := hltool.NewJWToken(signString)
89+
jwt := hltool.NewJWToken(t.SignString)
9590
parseToken, err := jwt.ParseJWToken(token)
9691
if err != nil {
9792
return false, err
@@ -117,7 +112,7 @@ func (t *Token) DeleteToken(rootToken, name string) error {
117112

118113
r, err := t.IsExistToken(name)
119114
if r {
120-
err = tokenDb.Delete([]string{name})
115+
err = t.TokenDb.Delete([]string{name})
121116
if err != nil {
122117
return fmt.Errorf("delete token < %s > error: %s", name, err)
123118
}
@@ -148,13 +143,13 @@ func (t *Token) AddToken(rootToken, name string) error {
148143
"updateTime": hltool.GetNowTimeStamp(),
149144
}
150145

151-
jwt := hltool.NewJWToken(signString)
146+
jwt := hltool.NewJWToken(t.SignString)
152147
token, err := jwt.GenJWToken(tokenValue)
153148
if err != nil {
154149
return err
155150
}
156151

157-
tokenDb.Set(map[string][]byte{
152+
t.TokenDb.Set(map[string][]byte{
158153
name: []byte(token),
159154
})
160155

controllers/common.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,7 @@ func (b *BaseController) Prepare() {
142142
b.StopRun()
143143
}
144144
if isroot {
145-
b.JsonError("JWToken Auth",
146-
fmt.Sprintf("%s", TokenAuthError, "can't use root token"), StringMap{}, true)
145+
b.JsonError("JWToken Auth", TokenAuthError, StringMap{}, true)
147146
b.StopRun()
148147
}
149148

0 commit comments

Comments
 (0)