【发布时间】:2013-12-23 07:10:42
【问题描述】:
我得到会话,来自我曾经使用的 PHP
<?php
session_start();
$_SESSION["key"] = "val";
echo $_SESSION["key"];
?>
在服务器端设置一个或多个键及其值,并能够检索或覆盖它,直到会话到期。
与大猩猩/会话相同
var(
sessionStore *sessions.CookieStore
sessionSecret []byte = make([]byte, 64)
session *sessions.Session
)
func init(){
sessionSecret = []byte("12345678901234567890123456789012")
sessionStore = sessions.NewCookieStore(sessionSecret)
session = sessions.NewSession(sessionStore, "session_name")
}
func SetSessionHandler(w http.ResponseWriter, r *http.Request) {
session, _ = sessionStore.Get(r, "session_name")
session.Values["key"] = "val"
session.Save(r, w)
}
func GetSessionHandler(w http.ResponseWriter, r *http.Request) {
session, _ = sessionStore.Get(r, "session_name")
fmt.FPrintln(session.Values["key"])
}
现在我不明白大猩猩/上下文的意义是什么。 我知道上下文是什么,但是...我不知道它如何适应大局。 它说它绑定到当前请求。 stackoverflow 上的另一个问题是在Writing Per-Handler Middleware 的上下文中“仅使用 gorilla/context 就足够了”。
但如果是请求绑定... err.. 语法错误,不计算。如果鸭子漂浮在水面上,那么女巫是用木头制成的。而且因为鸭子也能浮在水面上,如果她的体重和鸭子一样,她一定是个女巫。或者类似的东西;)
当它被请求绑定时,它作为中间件“管理器”如何有用,我无法全局设置它。您能否举例说明如何将 gorilla/sessions 与 gorilla/context 一起使用?
【问题讨论】:
-
如果您查看 Be ego(Go 的另一个 Web 框架)。上下文几乎是所有内容的包装器,请求详细信息、响应、参数值、标头值等。基本上,您可能需要了解有关请求发出者的所有内容。