1.什么是BasicAuth?

Basic Auth是一种开放平台认证方式,简单的说就是需要你输入用户名和密码才能继续访问。

2.在单路由中使用

​ 如果需要针对单个路由使用,要在单路由中注册BasicAuth中间件即可。

2.1 代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
// 使用BasicAuth中间件
func main(){
	engine := gin.Default()
  // 设置账号和密码,key:代表账号,value:代表密码
	ginAccounts := gin.Accounts{
		"user":"password",
		"abc":"123",
	}
  // 注册路由和中间件
	engine.GET("/test",gin.BasicAuth(ginAccounts), func(context *gin.Context) {
		// 获取中间件BasicAuth
		user := context.MustGet(gin.AuthUserKey).(string)
		fmt.Println(user)
		context.JSON(200,gin.H{"msg":"success"})
	}) 
	_ = engine.Run()
}

2.2 访问效果

image-20210524113630422

3.在路由组中使用

绝大部分情况下,我们都是在路由组中使用BasicAuth中间件。

3.1 代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
func RunUseBasicAuthWithGroup() {
	engine := gin.Default()
	// 注册路由组和中间件
	userGroup := engine.Group("/user", gin.BasicAuth(gin.Accounts{
		"abc": "123",
	}))
	userGroup.GET("info", func(context *gin.Context) {
		context.JSON(200, gin.H{"msg": "user.info"})
	})
}

访问效果同上。