mirror of
https://github.com/scratchfoundation/restify-cors-middleware.git
synced 2024-12-18 03:43:09 -05:00
commit
dce35f4a8c
3 changed files with 12 additions and 3 deletions
|
@ -31,12 +31,13 @@ server.use(cors.actual)
|
|||
|
||||
## Allowed origins
|
||||
|
||||
You can specify the full list of domains and subdomains allowed in your application:
|
||||
You can specify the full list of domains and subdomains allowed in your application, using strings or regular expressions.
|
||||
|
||||
```js
|
||||
origins: [
|
||||
'http://myapp.com',
|
||||
'http://*.myapp.com'
|
||||
'http://*.myapp.com',
|
||||
/^https?:\/\/myapp.com(:[\d]+)?$/
|
||||
]
|
||||
```
|
||||
|
||||
|
|
|
@ -13,7 +13,9 @@ exports.create = function (allowedOrigins) {
|
|||
}
|
||||
|
||||
function createMatcher (allowedOrigin) {
|
||||
if (allowedOrigin.indexOf('*') === -1) {
|
||||
if (allowedOrigin instanceof RegExp) {
|
||||
return requestOrigin => requestOrigin.match(allowedOrigin)
|
||||
} else if (allowedOrigin.indexOf('*') === -1) {
|
||||
// simple string comparison
|
||||
return requestOrigin => requestOrigin === allowedOrigin
|
||||
} else {
|
||||
|
|
|
@ -52,4 +52,10 @@ describe('Origin list', function () {
|
|||
var matcher = originMatcher.create(list)
|
||||
matcher('http://random-website.com').should.eql(false)
|
||||
})
|
||||
|
||||
it('supports regular expressions', function () {
|
||||
var list = ['http://api.myapp.com', /https?:\/\/example.com(:8888)?/]
|
||||
var matcher = originMatcher.create(list)
|
||||
matcher('https://example.com:8888').should.eql(true)
|
||||
})
|
||||
})
|
||||
|
|
Loading…
Reference in a new issue