跳至主要内容
版本:v2.x

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) boolNext 定义一个函数,在返回 true 时跳过此中间件。nil
用户map[string]stringUsers 定义允许的凭据。map[string]string{}
领域stringRealm 是一个字符串,用于定义 BasicAuth 的领域属性。该领域标识要进行身份验证的系统,并且客户端可以使用它来保存凭据。"Restricted"
授权者func(string, string) boolAuthorizer 定义一个函数来检查凭据。它将使用用户名和密码调用,并希望返回 true 或 false 来表示批准。nil
未授权fiber.HandlerUnauthorized 定义未授权响应的响应正文。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",
}