Added DEV cors config

This commit is contained in:
Jan Zípek 2022-08-21 22:27:21 +02:00
parent 73b9024884
commit a26e81f22d
Signed by: kamen
GPG Key ID: A17882625B33AC31
2 changed files with 21 additions and 0 deletions

View File

@ -24,12 +24,20 @@ func main() {
router := gin.Default()
// Front-end resources
router.StaticFile("/", "client/index.html")
router.Static("/js", "client/js")
router.Static("/css", "client/css")
// Only allow CORS in development mode
if server.Config.Mode == "development" {
router.Use(middleware.CorsMiddleware())
}
// User login route
router.POST("/api/login", routes.Login(server))
// Routes that are only accessible after logging in
loginProtected := router.Group("/", middleware.LoginAuthMiddleware(server))
loginProtected.GET("/api/sensors", routes.GetSensors(server))
loginProtected.GET("/api/sensors/:sensor/values", routes.HandleGetSensorValues(server))
@ -37,6 +45,7 @@ func main() {
loginProtected.PUT("/api/sensors/:sensor/config/:key", routes.HandlePutSensorConfig(server))
loginProtected.POST("/api/logout", routes.Logout(server))
// Routes accessible using auth key
keyProtected := router.Group("/", middleware.KeyAuthMiddleware(server))
keyProtected.POST("/api/sensors/:sensor/values", routes.HandlePostSensorValues(server))

12
server/middleware/cors.go Normal file
View File

@ -0,0 +1,12 @@
package middleware
import "github.com/gin-gonic/gin"
func CorsMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {
c.Header("Access-Control-Allow-Origin", "*")
c.Header("Access-Control-Allow-Credentials", "true")
// 2 hours
c.Header("Access-Control-Max-Age", "7200")
}
}