gpt4 book ai didi

api - Web api 将名称和密码设置为 request.BasicAuth

转载 作者:行者123 更新时间:2023-12-01 22:16:41 24 4
gpt4 key购买 nike

登录认证的路由——app.Handle("GET", "/v1/users/token", u.Token) .

我们可以从 request.BasicAuth 中获取名称和密码。

func (u *User) Token(ctx context.Context, w http.ResponseWriter, r *http.Request, params map[string]string) error {
...
name, pass, ok := r.BasicAuth()
...
}

但是如何设置名称并从客户端网址传递?

最佳答案

在浏览器要求用户提供基本身份验证凭据之前,您必须拒绝请求访问(使用状态码 401 Unauthorized)。您应该设置标题 WWW-AuthenticateBasic realm="Your message" .
另见 this article .

所以在你的代码中,当 ok是错误的,您应该拒绝该请求:

func (u *User) Token(ctx context.Context, w http.ResponseWriter, r *http.Request, params map[string]string) error {
...
name, pass, ok := r.BasicAuth()
if !ok {
w.Header().Set("WWW-Authenticate", "Basic realm=\"Your message\"")
http.Error(w, "Must supply authentication credentials", http.StatusUnauthorized)
return
}
}

关于api - Web api 将名称和密码设置为 request.BasicAuth,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59518205/

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