gpt4 book ai didi

session - Gorilla session 文件系统存储找不到 session 文件

转载 作者:数据小太阳 更新时间:2023-10-29 03:36:08 28 4
gpt4 key购买 nike

我开始使用 golang 和 Angular2 构建一个常规的网络应用程序,最重要的是我试图在 auth0.com 的帮助下保护我的登录.我从 here 下载快速入门代码并尝试运行代码,它运行了一段时间,然后在我下次运行它时,再也找不到/tmp/session 文件了。

以下是 auth0.com 提供的代码的一些基本概念。
<强>1。初始化 gorilla session 文件系统存储
<强>2。然后开始认证过程
下面提供了代码

app.go

var (
Store *sessions.FilesystemStore
)

func Init() error {
Store = sessions.NewFilesystemStore("", []byte("something-very-secret"))
gob.Register(map[string]interface{}{})
return nil
}

登录.go

func LoginHandler(w http.ResponseWriter, r *http.Request) {

domain := os.Getenv("AUTH0_DOMAIN")
aud := os.Getenv("AUTH0_AUDIENCE")

conf := &oauth2.Config{
ClientID: os.Getenv("AUTH0_CLIENT_ID"),
ClientSecret: os.Getenv("AUTH0_CLIENT_SECRET"),
RedirectURL: os.Getenv("AUTH0_CALLBACK_URL"),
Scopes: []string{"openid", "profile"},
Endpoint: oauth2.Endpoint{
AuthURL: "https://" + domain + "/authorize",
TokenURL: "https://" + domain + "/oauth/token",
},
}

if aud == "" {
aud = "https://" + domain + "/userinfo"
}

// Generate random state
b := make([]byte, 32)
rand.Read(b)
state := base64.StdEncoding.EncodeToString(b)

session, err := app.Store.Get(r, "state")
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
session.Values["state"] = state
err = session.Save(r, w)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}

audience := oauth2.SetAuthURLParam("audience", aud)
url := conf.AuthCodeURL(state, audience)

http.Redirect(w, r, url, http.StatusTemporaryRedirect)
}

错误日志是

打开/tmp/session_46CNLLHBKD...:没有那个文件或目录

我尝试理解代码并发现错误日志来自 login.go 第 39 行(session,err := app.Store.Get(r,“state”))。然后我开始追踪代码并找出答案。
login.go:39 -->store.go: 180-->session.go:132-->store.go:186-->store.go:272
你可以找到store.gosession.go在这里。
错误日志来自这一行:fdata, err := ioutil.ReadFile(filename)
整个过程我没有发现任何函数调用来保存 session 文件。

我不明白这个错误,我不知道为什么我一开始就可以运行代码,请帮助我解决这个问题。
非常感谢您的任何建议。非常感谢。

最佳答案

我自己想出答案

原来我在初始化gorilla session filesystemstore时更改了我的 key ,但是我没有删除我在chrome中的cookie文件,所以它找不到需要的tmp sesiion文件。
我更改 key ,然后删除相应的 cookie 文件,现在一切正常。

关于session - Gorilla session 文件系统存储找不到 session 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57368163/

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