// generateRandomKey creates a random key with the given strength. func generateRandomKey(strength int) []byte { k := make([]byte, strength) if n, err := io.ReadFull(rand.Reader, k); n != strength || err != nil { return utils.RandomCreateBytes(strength) } return k }
// XSRFToken creates a xsrf token string and returns. func (ctx *Context) XSRFToken(key string, expire int64) string { if ctx._xsrfToken == "" { token, ok := ctx.GetSecureCookie(key, "_xsrf") if !ok { token = string(utils.RandomCreateBytes(32)) ctx.SetSecureCookie(key, "_xsrf", token, expire) } ctx._xsrfToken = token } return ctx._xsrfToken }