簡單的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
}
相關文章
相關標籤/搜索