我希望我的Go应用程序通过网站进行身份验证,然后使用收到的cookie访问安全位置。以下卷曲示例说明了我正在尝试做的事情:
通过x-www-form-urlencoded
向网站进行身份验证并保存Cookie。数据自动进行编码:
curl 'https://www.example.com/login' \
--cookie-jar cookies.txt \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data 'user=USER NAME&pass=PASS'
现在,身份验证Cookie已保存在cookies.txt
中,我只是将其发送到访问需要登录的页面:
curl 'https://www.example.com/profile' \
--cookie cookies.txt
我不想在我的应用程序中将cookie存储在磁盘上,只在内存中存储,以便我可以在需要时使用它。
有没有人有一个如何在Go中实现这个目标的例子?
答案 0 :(得分:0)
对于Golang,您可以Add a cookie发出请求,您也可以在发出网络请求后使用this函数获取Cookie。
答案 1 :(得分:0)
您会发现Golang的方法与Java中的方法非常相似。
确保您在登录处理程序中。
您只能使用SetCoookie
函数
myCookie := http.Cookie{
Name: "cookie Name",
Value: "cookieValue",
}
http.SetCookie(w, &myCookie)
出于安全原因,建议将httpOnly标志添加到您的cookie。
httpOnly: true
此标志为true与HTTPS / HTTP无关。 它仅表示不允许脚本(仅HTTP请求),以防止跨站点脚本(XSS)攻击。 您从客户端存储cookie,然后在需要时调用cookie,并验证它是否是正确的cookie,以及您是否将其发送给正确的客户端。 这种方法可以使用:
cookie, err := r.Cookie("appointment")
checkErr(err)
现在,您解密cookie。验证一下。做任何你想做的事。 然后将您的回复返回给客户(如果它不是合适的客户)。 希望这种帮助