Cookie 加密
加密Cookie中间件
为 Fiber 加密中间件,该中间件对cookie值进行加密。注意:这个中间件并不对cookie的名称进行加密。
目录
签名
// 初始化中间件
func New(config ...Config) fiber.Handler
// 返回一个随机的32个字符的长字符串
func GenerateKey() string
示例
导入作为 Fiber 网络框架一部分的中间件包
import (
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/encryptcookie"
)
在你启动你的Fiber应用程序后,你可以使用以下可能性。
// 默认的中间件配置
app.Use(encryptcookie.New(encryptcookie.Config{
Key: "secret-thirty-2-character-string",
}))
// 获取/读出加密的cookie
app.Get("/", func(c *fiber.Ctx) error {
return c.SendString("value=" + c.Cookies("test"))
})
//发布/创建加密的cookie
app.Post("/", func(c *fiber.Ctx) error {
c.Cookie(&fiber.Cookie{
Name: "test",
Value: "SomeThing",
})
return nil
})
配置
type Config struct {
// 接下来定义了一个函数,当返回true时,跳过这个中间件。
//
// 可选。默认值:nil
Next func(c *fiber.Ctx) bool
// 不应被加密的cookie密钥的数组。
//
// 可选。默认值。[]
Except []string
// Base64编码的唯一密钥,用于编码和解码cookies。
//
// 需要。密钥长度应该是32个字符。
// 你可以使用`encryptcookie.GenerateKey()`来生成一个新的密钥。
Key string
// 自定义函数来加密cookies。
//
// 可选。默认情况下。EncryptCookie
Encryptor func(decryptedString, key string) (string, error)
// 自定义函数来解密cookies。
//
// 可选。默认情况下。DecryptCookie
Decryptor func(encryptedString, key string) (string, error)
}
默认配置
// `key`必须是一个32个字符的字符串。它是用来加密数值的,所以要确保它是随机的,并保持它的秘密。
// 你可以调用`encryptcookie.GenerateKey()`来为你创建一个随机密钥。
// 确保不要将`Key`设置为`encryptcookie.GenerateKey()`,因为这将在每次运行时创建一个新的密钥。
app.Use(encryptcookie.New(encryptcookie.Config{
Key: "secret-thirty-2-character-string",
}))
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。