gin.*Context.Set
とgin.*Context.Get
で、同一リクエストに限ったデータの受け渡しが可能。
ユーザー認証で使用する例
Middleware でユーザーを認証して、HandlerFunc で認証済みのユーザーを取得。
package main
import "github.com/gin-gonic/gin"
// Midleware
func AuthRequired() gin.HandlerFunc {
return func(c *gin.Context) {
// Some authorization in Authorization
user := Authorization()
c.Set("AuthorizedUser", user)
}
}
// HandlerFunc
func GetProfile(c *gin.Context) {
user := c.Get("AuthorizedUser")
}
func main() {
r := gin.Default()
r.Use(AuthRequired())
r.GET("/profile", GetProfile)
r.run()
}