@@ -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
1911const (
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对象
2925func 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
4338func (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是否有效
7166func (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 不能被用来请求
9388func (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
0 commit comments