简单的 Token 验证处理

  • 用于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
}
原文地址:https://www.cnblogs.com/devzyh/p/12670275.html