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",
}))

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://learnku.com/docs/gofiber/2.x/enc...

译文地址:https://learnku.com/docs/gofiber/2.x/enc...

上一篇 下一篇
贡献者:1
讨论数量: 0
发起讨论 只看当前版本


暂无话题~