42 lines
808 B
Go
42 lines
808 B
Go
|
|
package redis
|
|||
|
|
|
|||
|
|
import (
|
|||
|
|
"encoding/json"
|
|||
|
|
"errors"
|
|||
|
|
"time"
|
|||
|
|
|
|||
|
|
"github.com/sirupsen/logrus"
|
|||
|
|
"myschools.me/suguo/intelligent-community/model"
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
// 存储用户的Token
|
|||
|
|
func UserTokenSet(key *string, usr *model.User) error {
|
|||
|
|
|
|||
|
|
err := Set(*key, usr, 7210*time.Second)
|
|||
|
|
if err != nil {
|
|||
|
|
logrus.WithFields(logrus.Fields{
|
|||
|
|
"func": "UserTokenSet",
|
|||
|
|
}).Warnf("Set: %s", err.Error())
|
|||
|
|
return err
|
|||
|
|
}
|
|||
|
|
return nil
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 从redis中获取用户信息,最佳实践经验建议把此代码放service层
|
|||
|
|
func UserTokenGet(token *string) (*model.User, error) {
|
|||
|
|
b, err := GetBytes(token)
|
|||
|
|
if err != nil {
|
|||
|
|
return nil, err
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if b == nil {
|
|||
|
|
return nil, errors.New("无效token,请重新登录!")
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
var user *model.User
|
|||
|
|
if err := json.Unmarshal(*b, user); err != nil {
|
|||
|
|
return nil, err
|
|||
|
|
}
|
|||
|
|
return user, nil
|
|||
|
|
}
|