gpt4 book ai didi

session - 在 golang 中检查 HTML 文件中的用户 session

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

如何直接在 HTML 文件中查看用户登录 session ?我已经在 google 上搜索过了,但是我无法直接在 html 文件中找到检查 session ,难道不能这样做吗?

我唯一能找到的就是通过 ExecuteTemplate() 传递它,这是我唯一能做的吗?

最佳答案

根据您的描述,我认为您在 .go 文件(handlerfunc)中有一个可访问的 session 变量,并希望在 html 文件中使用它。这个比较简单,就是一个值。是的,通过 ExecuteTemplate 传递它是正确的方法。 session 只是一个 cookie,它随请求一起从浏览器发送到您的服务器,它位于请求 header 中。

您可以在您的函数集中为访问某种全局变量的模板设置一个函数,但随后您会遇到跨 goroutine 同步的问题(每个请求处理程序都在 goroutine 中运行),因此更简单的方法最好。

您不应该尝试在模板中对 session 执行操作,例如解密它和提取用户 ID - 这更适合您的处理程序,并且在那里比在模板中更安全。

首先使用您喜欢的库从 cookie 中提取它(您正在加密您的 session ,对吗?),然后将它添加到 View 上下文中(假设您使用值映射)。

// use a lib like gorilla sessions
session, err := store.Get(r, "session-name")
userID := session.Get("user")

// store data (here in a map[string]interface{})
data := make(map[string]interface{})
data["userID"] = userID

// Send this data to the view
t.Execute(w, data) // Sets the . variable in templates

然后在 View 中,只需使用类似这样的方法来访问您需要的值:

{{ .userID }}

或者是的,你可以只使用 javascript 来访问 session ,但你需要知道它是如何加密的,如果它包含任何有值(value)的信息,这可能是一个安全漏洞 - 任何 js 可以得到你的用户可以得到也是。

关于session - 在 golang 中检查 HTML 文件中的用户 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48055222/

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