跳过正文

在Go项目的Swaggar中实现Bearer Token验证

·428 字·1 分钟
Go Go 后端 Swaggar Gin
作者
陈明皓
大四牢登 牛马前端

需求

在Go语言的swaggar中,我们需要配置securityDefinitions以实现在接口文档中指定token,在大多项目中我们使用的是Bearer的认证方式,如下

// 若token的值为xxx
"header": {
    "Authentication": "Bearer xxx"
}

在go语言的swaggar注解中,我们应该如何设置,达成这个目的呢

方法

  1. main.go中设置:
// @securityDefinitions.apikey Bearer
// @in header
// @name Authorization
// @description 在header中设置token,格式为Authorization: Bearer + tokenValue。
  1. 在需要token验证的handler中设置
// @Summary      Profile user
// @Description  get user info
// @Tags         users
// @Accept       json
// @Produce      json
// @Success      200  {object}  dtos.User
// @Failure      400  {object}  httputil.ResponseError
// ...
// @Router       /profile [get]

// 带上以下注解代表使用Bearer验证
// @Security Bearer

func (auth *AuthController) Profile(c *gin.Context) {...}

效果

在swaggar网页中,点击右侧的Authentication,在窗口中输入token的值,即可在需要token验证的接口测试中带上所需的token

效果

参考Github Issue:https://github.com/swaggo/gin-swagger/issues/90