gtsocial-umbx

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

README.md (2401B)


      1 # CORS gin's middleware
      2 
      3 [![Run Tests](https://github.com/gin-contrib/cors/actions/workflows/go.yml/badge.svg)](https://github.com/gin-contrib/cors/actions/workflows/go.yml)
      4 [![codecov](https://codecov.io/gh/gin-contrib/cors/branch/master/graph/badge.svg)](https://codecov.io/gh/gin-contrib/cors)
      5 [![Go Report Card](https://goreportcard.com/badge/github.com/gin-contrib/cors)](https://goreportcard.com/report/github.com/gin-contrib/cors)
      6 [![GoDoc](https://godoc.org/github.com/gin-contrib/cors?status.svg)](https://godoc.org/github.com/gin-contrib/cors)
      7 
      8 Gin middleware/handler to enable CORS support.
      9 
     10 ## Usage
     11 
     12 ### Start using it
     13 
     14 Download and install it:
     15 
     16 ```sh
     17 go get github.com/gin-contrib/cors
     18 ```
     19 
     20 Import it in your code:
     21 
     22 ```go
     23 import "github.com/gin-contrib/cors"
     24 ```
     25 
     26 ### Canonical example
     27 
     28 ```go
     29 package main
     30 
     31 import (
     32   "time"
     33 
     34   "github.com/gin-contrib/cors"
     35   "github.com/gin-gonic/gin"
     36 )
     37 
     38 func main() {
     39   router := gin.Default()
     40   // CORS for https://foo.com and https://github.com origins, allowing:
     41   // - PUT and PATCH methods
     42   // - Origin header
     43   // - Credentials share
     44   // - Preflight requests cached for 12 hours
     45   router.Use(cors.New(cors.Config{
     46     AllowOrigins:     []string{"https://foo.com"},
     47     AllowMethods:     []string{"PUT", "PATCH"},
     48     AllowHeaders:     []string{"Origin"},
     49     ExposeHeaders:    []string{"Content-Length"},
     50     AllowCredentials: true,
     51     AllowOriginFunc: func(origin string) bool {
     52       return origin == "https://github.com"
     53     },
     54     MaxAge: 12 * time.Hour,
     55   }))
     56   router.Run()
     57 }
     58 ```
     59 
     60 ### Using DefaultConfig as start point
     61 
     62 ```go
     63 func main() {
     64   router := gin.Default()
     65   // - No origin allowed by default
     66   // - GET,POST, PUT, HEAD methods
     67   // - Credentials share disabled
     68   // - Preflight requests cached for 12 hours
     69   config := cors.DefaultConfig()
     70   config.AllowOrigins = []string{"http://google.com"}
     71   // config.AllowOrigins = []string{"http://google.com", "http://facebook.com"}
     72   // config.AllowAllOrigins = true
     73 
     74   router.Use(cors.New(config))
     75   router.Run()
     76 }
     77 ```
     78 note: while Default() allows all origins, DefaultConfig() does not and you will still have to use AllowAllOrigins
     79 
     80 ### Default() allows all origins
     81 
     82 ```go
     83 func main() {
     84   router := gin.Default()
     85   // same as
     86   // config := cors.DefaultConfig()
     87   // config.AllowAllOrigins = true
     88   // router.Use(cors.New(config))
     89   router.Use(cors.Default())
     90   router.Run()
     91 }
     92 ```