BasicAuth HTTP 基本认证
Basic Auth
基本认证中间件为 Fiber 提供了一个HTTP基本认证。它对有效的证书调用下一个处理程序,对缺少或无效的证书调用 401 Unauthorized 或自定义响应。
目录
签名
func New(config Config) fiber.Handler
示例
导入作为 Fiber 网络框架一部分的中间件包
import (
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/basicauth"
)
在你启动你的 Fiber 应用程序后,你可以使用以下可能性。
// 提供一个最小的配置
app.Use(basicauth.New(basicauth.Config{
Users: map[string]string{
"john": "Doe",
"admin": "123456",
},
}))
// 或者扩展你的配置以实现定制化
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",
}))
配置
// Config定义了中间件的配置。
type Config struct {
// 下一步定义了一个函数,当返回true时跳过这个中间件。
//
// 可选。默认值:nil
Next func(c *fiber.Ctx) bool
// Users定义了允许的凭证
//
// 必须的。默认:map[string]string{}。
Users map[string]string
// Realm 是一个字符串,用于定义 BasicAuth 的 realm 属性。
// Realm是一个字符串,用于定义BasicAuth的realm属性,realm标识了要进行认证的系统。
// 并且可以被客户用来保存凭证。
//
// 可选的。默认值:"限制"。
Realm string
// 授权者定义了一个函数,你可以通过这个函数
// 来检查你想要的凭证。
// 它将以用户名和密码被调用。
// 并期望返回真或假以表明
// 表明证书被批准或未被批准。
//
// 可选的。默认值:nil。
Authorizer func(string, string) bool
// Unauthorized定义了未授权响应的响应体。
// 默认情况下,它将以401未授权和正确的WWW-Auth头返回。
//
// 可选。默认:nil
Unauthorized fiber.Handler
// ContextUser是在Locals中存储用户名的键。
//
// 可选。默认值:"用户名"
ContextUsername string
// ContextPass是存储在本地的密码的键值。
//
// 可选。默认为:"password"
ContextPassword string
}
默认配置
var ConfigDefault = Config{
Next: nil,
Users: map[string]string{},
Realm: "Restricted",
Authorizer: nil,
Unauthorized: nil,
ContextUsername: "username",
ContextPassword: "password",
}
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。