Skip to content

Commit e852aca

Browse files
committed
Add code from PR amitshekhariitbhu#15 - Add CORS middleware support
1 parent d997f43 commit e852aca

File tree

2 files changed

+28
-2
lines changed

2 files changed

+28
-2
lines changed

api/middleware/cors_middleware.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package middleware
2+
3+
import (
4+
"github.com/gin-gonic/gin"
5+
)
6+
7+
func CORSMiddleware() gin.HandlerFunc {
8+
return func(c *gin.Context) {
9+
c.Writer.Header().Set("Content-Type", "application/json")
10+
c.Writer.Header().Set("Access-Control-Allow-Origin", "*")
11+
c.Writer.Header().Set("Access-Control-Allow-Headers", "Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization, accept, origin, Cache-Control, X-Requested-With")
12+
c.Writer.Header().Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE, UPDATE")
13+
c.Writer.Header().Set("Access-Control-Allow-Credentials", "true")
14+
15+
if c.Request.Method == "OPTIONS" {
16+
c.AbortWithStatus(204)
17+
return
18+
}
19+
20+
c.Next()
21+
}
22+
}

api/route/route.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,17 @@ import (
1010
)
1111

1212
func Setup(env *bootstrap.Env, timeout time.Duration, db mongo.Database, gin *gin.Engine) {
13-
publicRouter := gin.Group("")
13+
router := gin.Group("")
14+
// Middleware to allow CORS
15+
router.Use(middleware.CORSMiddleware())
16+
17+
publicRouter := router.Group("")
1418
// All Public APIs
1519
NewSignupRouter(env, timeout, db, publicRouter)
1620
NewLoginRouter(env, timeout, db, publicRouter)
1721
NewRefreshTokenRouter(env, timeout, db, publicRouter)
1822

19-
protectedRouter := gin.Group("")
23+
protectedRouter := router.Group("")
2024
// Middleware to verify AccessToken
2125
protectedRouter.Use(middleware.JwtAuthMiddleware(env.AccessTokenSecret))
2226
// All Private APIs

0 commit comments

Comments
 (0)