2 Star 1 Fork 0

张明理 / sfw

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
usercenter-token.go 1.20 KB
一键复制 编辑 原始数据 按行查看 历史
张明理 提交于 2020-09-30 12:43 . Initial commit of sfw
package signature
import "time"
// Zone Token中的用户激活游戏区信息
type Zone struct {
ZoneID uint64 `json:"zone_id"`
ZoneName string `json:"zone_name"`
ActivatedTime time.Time `json:"activated_time"`
}
// Token 用户Token
type Token struct {
UID uint64 `json:"uid"`
Username string `json:"username"`
Timestamp int64 `json:"timestamp"`
ExpiresAfter int64 `json:"expires_after"`
Zones []Zone `json:"zones"`
}
// Expired Token 是否过期
func (t *Token) Expired() bool {
signTime := time.Unix(t.Timestamp, 0)
if time.Now().Sub(signTime) > time.Duration(t.ExpiresAfter)*time.Second {
return true
}
return false
}
// IsInternal 是否是内部用户,内部用户用于测试,只允许在内部测试服务器上使用
func (t *Token) IsInternal() bool { return t.UID <= 10000 }
// CheckUsercenterToken 检查一个用户中心的Token串是否有效,有效则反序列化并返回Token对象
func CheckUsercenterToken(tokenStr string) (*Token, error) {
pub, err := GetKey(`usercenter`).Pub()
if err != nil {
return nil, err
}
token := &Token{}
err = CheckToken(tokenStr, pub, token)
if err != nil {
return nil, err
}
return token, nil
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/terender/sfw.git
git@gitee.com:terender/sfw.git
terender
sfw
sfw
v0.1.1

搜索帮助

344bd9b3 5694891 D2dac590 5694891