gpt4 book ai didi

http - 获取 session 值

转载 作者:IT王子 更新时间:2023-10-29 01:08:30 26 4
gpt4 key购买 nike

我的 Rails 应用程序使用 session 来存储用户凭据以进行授权。尝试在 Go 代码中登录并执行一些操作(需要用户 session )。我应该在登录时检索用户 session 并传递给下一个请求吗?我该如何处理?

最佳答案

Go 的标准库不提供 HTTP session 管理器。所以你必须自己写一个,或者使用别人写的。

一些例子:

通常 HTTP session 是通过服务器和客户端之间的 cookie 管理的,因此, session ( session ID)可以直接从请求(http.Request)中获取,例如与 Request.Cookie() .

也就是说,没有必要通过“请求链”“传递” session ,每个处理程序都可以通过 http.Request 访问它。

例如使用 github.com/icza/session可以这样做:

func MyHandler(w http.ResponseWriter, r *http.Request) {
sess := session.Get(r)
if sess == nil {
// No session (yet)
} else {
// We have a session, use it
}
}

使用 Gorilla sessions ,它是相似的:

var store = sessions.NewCookieStore([]byte("something-very-secret"))

func MyHandler(w http.ResponseWriter, r *http.Request) {
session, err := store.Get(r, "session-name")
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
// Use session
}

关于http - 获取 session 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39509914/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com