登录
首页 >  Golang >  Go问答

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

来源:stackoverflow

时间:2024-04-29 22:03:35 162浏览 收藏

今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《Web api 将名称和密码设置为 request.BasicAuth》,主要内容是讲解等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,我都会认真看的!大家一起进步,一起学习!

问题内容

登录验证的路由——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 未经授权)。您应该将标头 www-authenticate 设置为 basic 领域 =“您的消息”。 另请参阅 this article

因此,在您的代码中,当 ok 为 false 时,您应该拒绝该请求:

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
    }
}

理论要掌握,实操不能落!以上关于《Web api 将名称和密码设置为 request.BasicAuth》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>