我找到了SecureCookie模块,我想用它在 httpOnly Cookie 中存储 JWT 令牌(访问和刷新),以便在 REST API 中使用。下面的代码是从上面提到的官方 Github 页面中引用的——我不确定“值字符串映射”是什么意思:func SetCookieHandler(w http.ResponseWriter, r *http.Request) { value := map[string]string{ "foo": "bar", } if encoded, err := s.Encode("cookie-name", value); err == nil { cookie := &http.Cookie{ Name: "cookie-name", Value: encoded, Path: "/", Secure: true, HttpOnly: true, } http.SetCookie(w, cookie) }}换句话说:我应该在哪里保存我的代币?它们会转到“值”字符串映射,还是应该是在编码函数之后创建的“cookie”对象中的属性?顺便提一下:我也在使用 Gin 框架,但这不应该改变任何东西。
1 回答
噜噜哒
TA贡献1784条经验 获得超7个赞
SecureCookie 所做的唯一一件事就是将您的令牌值转换为编码字符串。然后,在将 cookie 设置为客户端时,您可以将其视为令牌的新值。
可以使用Encode任何数据类型,不一定必须是 a map[string]string,您可以直接将 jwt 令牌传递给它。
encoded, err := s.Encode("jwt-token", "value.of.jwt.token.here")
之后,不能比示例中的键值格式更简单:
cookie := &http.Cookie{
Name: "jwt-token", // <- should be any unique key you want
Value: encoded, // <- the token after encoded by SecureCookie
Path: "/",
Secure: true,
HttpOnly: true,
}
http.SetCookie(w, cookie)
当您想再次验证令牌时,请记住encoded使用正确的密钥对 cookie进行解码。jwt-token
- 1 回答
- 0 关注
- 96 浏览
添加回答
举报
0/150
提交
取消