goLang 网站访问添加浏览器自带的登录功能(网站加密访问)
效果图:
开始实现(本文使用的gin框架,其他同理)
1.router路由添加中间件
//登录限制
r.Use(middleware.HTTPAuthMiddleware())
2.设置中间件
//HTTPAuthMiddleware login middleware
func HTTPAuthMiddleware() gin.HandlerFunc {
return func(ctx *gin.Context) {
//这里用户名密码应该是动态设置的
user := "admin"
passwd := "123123"
reqUser, reqPasswd, hasAuth := ctx.Request.BasicAuth()
if (user == "" && passwd == "") ||
(hasAuth && reqUser == user && reqPasswd == passwd) {
ctx.Next()
} else {
ctx.Writer.Header().Set("WWW-Authenticate", `Basic realm="Restricted"`)
http.Error(ctx.Writer, http.StatusText(http.StatusUnauthorized), http.StatusUnauthorized)
ctx.Abort()
}
}
}
3.重新编译程序运行。