- 用于Go Web中Token的存储以及验证。
package config
import "time"
// 最大生命周期
const maxLife = 10 * time.Minute
// 数据存储
var tokens map[time.Time]string
// 添加 token
func Add(token string) {
if tokens == nil {
tokens = map[time.Time]string{}
}
tokens[time.Now()] = token
}
// 验证 token
func Auth(token string) bool {
for k, v := range tokens {
// 清理
if int64(k.Sub(time.Now()).Minutes()) > int64(maxLife) {
delete(tokens, k)
}
// 比较
if v == token {
delete(tokens, k)
return true
}
}
return false
}