From 493008ea3c72b8588f5f3a87bcb32274f49837d3 Mon Sep 17 00:00:00 2001 From: Manu Mtz-Almeida Date: Fri, 4 Jul 2014 04:47:34 +0200 Subject: [PATCH] Improved BasicAuth() example --- README.md | 49 ++++++++++++++++++++++++------------------------- 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index e81f5c9..72a87a1 100644 --- a/README.md +++ b/README.md @@ -320,40 +320,39 @@ func main() { #### Using BasicAuth() middleware ```go -func main() { - r := gin.Default() - // note than: type gin.H map[string]interface{} - secrets := gin.H{ - "foo": gin.H{"email": "foo@bar.com", "phone": "123433"}, - "austin": gin.H{"email": "austin@example.com", "phone": "666"}, - "lena": gin.H{"email": "lena@guapa.com", "phone": "523443"} - } +// similate some private data +var secrets = gin.H{ + "foo": gin.H{"email": "foo@bar.com", "phone": "123433"}, + "austin": gin.H{"email": "austin@example.com", "phone": "666"}, + "lena": gin.H{"email": "lena@guapa.com", "phone": "523443"}, +} +func main() { + r := gin.Default() + + // Group using gin.BasicAuth() middleware + // gin.Accounts is a shortcut for map[string]string authorized := r.Group("/admin", gin.BasicAuth(gin.Accounts{ - "foo": "bar", + "foo": "bar", "austin": "1234", - "lena": "hello2", - "manu": "4321" - } + "lena": "hello2", + "manu": "4321", + })) + + // /admin/secrets endpoint + // hit "localhost:8080/admin/secrets authorized.GET("/secrets", func(c *gin.Context) { // get user, it was setted by the BasicAuth middleware - user := c.GET(gin.AuthUserKey).(string) + user := c.Get(gin.AuthUserKey).(string) if secret, ok := secrets[user]; ok { - c.JSON(200, gin.H{ - "user": user, - "secret": secret - } + c.JSON(200, gin.H{"user": user, "secret": secret}) } else { - c.JSON(200, gin.H{ - "user": user, - "secret": "NO SECRET :(" - } + c.JSON(200, gin.H{"user": user, "secret": "NO SECRET :("}) } - } - // hit "localhost:8080/admin/secrets + }) - // Listen and server on 0.0.0.0:8080 - r.Run(":8080") + // Listen and server on 0.0.0.0:8080 + r.Run(":8080") } ```