chtorr/vendor/github.com/captncraig/cors/README.md

54 lines
2.2 KiB
Markdown
Raw Normal View History

2023-02-14 11:33:38 +01:00
cors gives you easy control over Cross Origin Resource Sharing for your site.
It allows you to whitelist particular domains per route, or to simply allow all domains `*` If desired you may customize nearly every aspect of the specification.
### Syntax
```
cors [path] [domains...] {
origin [origin]
origin_regexp [regexp]
methods [methods]
allow_credentials [allowCredentials]
max_age [maxAge]
allowed_headers [allowedHeaders]
exposed_headers [exposedHeaders]
}
```
* **path** is the file or directory this applies to (default is /).
* **domains** is a space-seperated list of domains to allow. If ommitted, all domains will be granted access.
* **origin** is a domain to grant access to. May be specified multiple times or ommitted.
* **origin_regexp** is a regexp that will be matched to the `Origin` header. Access will be granted accordingly. It can be used in conjonction with the `origin` config (executed as a fallback to `origin`). May be specified multiple times or ommitted.
* **methods** is set of http methods to allow. Default is these: POST,GET,OPTIONS,PUT,DELETE.
* **allow_credentials** sets the value of the Access-Control-Allow-Credentials header. Can be true or false. By default, header will not be included.
* **max_age** is the length of time in seconds to cache preflight info. Not set by default.
* **allowed_headers** is a comma-seperated list of request headers a client may send.
* **exposed_headers** is a comma-seperated list of response headers a client may access.
### Examples
Simply allow all domains to request any path:
<code class="block"><span class="hl-directive">cors</span></code>
Protect specific paths only, and only allow a few domains:
<code class="block"><span class="hl-directive">cors</span> <span class="hl-arg">/foo http://mysite.com http://anothertrustedsite.com</span></code>
Full configuration:
```
cors / {
origin http://allowedSite.com
origin http://anotherSite.org https://anotherSite.org
origin_regexp .+\.example\.com$
methods POST,PUT
allow_credentials false
max_age 3600
allowed_headers X-Custom-Header,X-Foobar
exposed_headers X-Something-Special,SomethingElse
}
```