首页 > 后端开发 > Golang > 正文

如何在 Go 中管理经过身份验证的 HTTP 客户端请求的 Cookie?

Susan Sarandon
发布: 2024-11-10 07:15:02
原创
1000 人浏览过

How to Manage Cookies for Authenticated HTTP Client Requests in Go?

来自 Go 的经过身份验证的 HTTP 客户端请求

在发出需要身份验证的 HTTP 客户端请求的上下文中,后续请求失败时会出现常见问题出现 401 拒绝访问错误。让我们探索解决此问题的 Golang 解决方案。

在提供的代码片段中,客户端使用 HTTP 基本身份验证成功与服务器进行身份验证,但在后续请求检索用户详细信息时面临挑战。为了解决这个问题,解决方案在于创建一个自定义的 cookie jar。

Golang 的 HTTP 客户端不会自动处理 cookie 管理。需要 cookie jar 来存储和管理跨 HTTP 请求的 cookie。下面的代码定义了自定义 cookie jar 实现:

type myjar struct {
    jar map[string] []*http.Cookie
}

func (p* myjar) SetCookies(u *url.URL, cookies []*http.Cookie) {
    p.jar [u.Host] = cookies
}

func (p *myjar) Cookies(u *url.URL) []*http.Cookie {
    return p.jar[u.Host]
}
登录后复制

在 main 函数中,我们初始化自定义 cookie jar 并将其分配给客户端的 Jar 字段:

    jar := &myjar{}
    jar.jar = make(map[string] []*http.Cookie)
    client.Jar = jar
登录后复制

通过合并通过这些更改,Golang 可以成功地跨经过身份验证的 HTTP 请求管理 cookie。现在,客户端将自动将与经过身份验证的会话关联的 cookie 附加到后续请求,确保正确处理详细信息请求,而不会出现 401 错误。

以上是如何在 Go 中管理经过身份验证的 HTTP 客户端请求的 Cookie?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板