BasicAuth
适用于 Fiber 的基本认证中间件,提供 HTTP 基本认证。它为有效凭证调用下一个处理程序,并为缺失或无效凭证提供 401 未授权 或自定义响应。
签名
func New(config Config) fiber.Handler
示例
导入作为 Fiber Web 框架一部分的中介件包
import (
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/basicauth"
)
在你初始化 Fiber 应用后,你可以使用以下可能性
// Provide a minimal config
app.Use(basicauth.New(basicauth.Config{
Users: map[string]string{
"john": "doe",
"admin": "123456",
},
}))
// Or extend your config for customization
app.Use(basicauth.New(basicauth.Config{
Users: map[string]string{
"john": "doe",
"admin": "123456",
},
Realm: "Forbidden",
Authorizer: func(user, pass string) bool {
if user == "john" && pass == "doe" {
return true
}
if user == "admin" && pass == "123456" {
return true
}
return false
},
Unauthorized: func(c *fiber.Ctx) error {
return c.SendFile("./unauthorized.html")
},
ContextUsername: "_user",
ContextPassword: "_pass",
}))
配置
属性 | 类型 | 说明 | 默认值 |
---|---|---|---|
下一个 | func(*fiber.Ctx) bool | Next 定义一个函数,在返回 true 时跳过此中间件。 | nil |
用户 | map[string]string | Users 定义允许的凭据。 | map[string]string{} |
领域 | string | Realm 是一个字符串,用于定义 BasicAuth 的领域属性。该领域标识要进行身份验证的系统,并且客户端可以使用它来保存凭据。 | "Restricted" |
授权者 | func(string, string) bool | Authorizer 定义一个函数来检查凭据。它将使用用户名和密码调用,并希望返回 true 或 false 来表示批准。 | nil |
未授权 | fiber.Handler | Unauthorized 定义未授权响应的响应正文。 | nil |
上下文用户名 | interface{} | ContextUsername 是用于在 Locals 中存储用户名的键。 | "username" |
上下文密码 | interface{} | ContextPassword 是用于在 Locals 中存储密码的键。 | "password" |
默认配置
var ConfigDefault = Config{
Next: nil,
Users: map[string]string{},
Realm: "Restricted",
Authorizer: nil,
Unauthorized: nil,
ContextUsername: "username",
ContextPassword: "password",
}