parent
30c963a5f0
commit
61a1c93f0f
89 changed files with 15859 additions and 2 deletions
53
server/libs/encrypt/jwt.go
Normal file
53
server/libs/encrypt/jwt.go
Normal file
|
@ -0,0 +1,53 @@
|
|||
package encrypt
|
||||
|
||||
import (
|
||||
"github.com/robbert229/jwt"
|
||||
)
|
||||
|
||||
func JwtEncrypterMaker(secret string) TokenEncrypter {
|
||||
return &JwtEncrypter{
|
||||
alg: jwt.HmacSha256(secret),
|
||||
claims: jwt.NewClaim(),
|
||||
}
|
||||
}
|
||||
|
||||
type JwtEncrypter struct {
|
||||
alg jwt.Algorithm
|
||||
claims *jwt.Claims
|
||||
}
|
||||
|
||||
func (encrypter *JwtEncrypter) Add(key string, value string) bool {
|
||||
encrypter.claims.Set(key, value)
|
||||
return true
|
||||
}
|
||||
|
||||
func (encrypter *JwtEncrypter) FromStr(token string) bool {
|
||||
claims, err := encrypter.alg.Decode(token)
|
||||
// TODO: should return error or error info will lost
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
|
||||
encrypter.claims = claims
|
||||
return true
|
||||
}
|
||||
|
||||
func (encrypter *JwtEncrypter) Get(key string) (string, bool) {
|
||||
iValue, err := encrypter.claims.Get(key)
|
||||
// TODO: should return error or error info will lost
|
||||
if err != nil {
|
||||
return "", false
|
||||
}
|
||||
|
||||
return iValue.(string), true
|
||||
}
|
||||
|
||||
func (encrypter *JwtEncrypter) ToStr() (string, bool) {
|
||||
token, err := encrypter.alg.Encode(encrypter.claims)
|
||||
|
||||
// TODO: should return error or error info will lost
|
||||
if err != nil {
|
||||
return "", false
|
||||
}
|
||||
return token, true
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue