Skip to content
This repository was archived by the owner on Apr 8, 2024. It is now read-only.

Commit 67809ca

Browse files
authored
Merge pull request #15 from uniquelyparticular/fix/isAuthorizedProxy
fix: getOrigin return referer if no origin, fixed errorResponse, destURL
2 parents f80a27a + 61a7a4e commit 67809ca

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

src/index.js

+16-8
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ const getOrigin = (origin, referer) => {
9191
if (subOrigin) {
9292
origin = decodeURIComponent(subOrigin[1])
9393
}
94-
return origin
94+
return origin || referer
9595
}
9696

9797
const requestHeaders = headers => {
@@ -100,11 +100,11 @@ const requestHeaders = headers => {
100100
referer,
101101
origin,
102102
'x-requested-with': requestedWith,
103-
...filteringHeaders
103+
...filterableHeaderss
104104
} = headers
105105

106-
const filteredHeaders = Object.keys(filteringHeaders).reduce((obj, key) => {
107-
obj[key] = filterValue(filteringHeaders[key])
106+
const filteredHeaders = Object.keys(filterableHeaderss).reduce((obj, key) => {
107+
obj[key] = filterValue(filterableHeaderss[key])
108108
return obj
109109
}, {})
110110

@@ -113,6 +113,7 @@ const requestHeaders = headers => {
113113
'x-forwarded-origin': getOrigin(origin, referer),
114114
'x-forwarded-referer': referer
115115
}
116+
116117
const modifiedHeaders = { ...filteredHeaders, ...defaultHeaders }
117118
// console.log('requestHeaders, modifiedHeaders', modifiedHeaders)
118119
return modifiedHeaders
@@ -164,9 +165,17 @@ const processRequest = (res, origin, url, options) => {
164165
// console.log('options', options)
165166
return fetch(url, options)
166167
.then(response => {
167-
// console.log('processRequest, response.status', response.status)
168+
// console.log('processRequest, response', response)
168169
if (response.status > 299) {
169-
return send(res, response.status || 500, response)
170+
// console.log('processRequest, response.statusText', response.statusText)
171+
const errorResponse = {
172+
...response,
173+
url: url,
174+
options: JSON.stringify(options),
175+
status: response.status,
176+
statusText: response.statusText
177+
}
178+
return send(res, response.status || 500, errorResponse)
170179
} else {
171180
return json(response)
172181
.then(data => {
@@ -225,9 +234,8 @@ const handleProxy = async (req, res) => {
225234

226235
// console.log('proxyPrefix', proxyPrefix)
227236
const destinationURL = decodeURIComponent(
228-
path.replace(`/${proxyPrefix}/`, '')
237+
decodeURIComponent(path.replace(`/${proxyPrefix}/`, ''))
229238
)
230-
// console.log('destinationURL', destinationURL)
231239

232240
if (!isAuthorized(destinationURL, destinationWhiteList)) {
233241
return notAuthorized(req, res)

0 commit comments

Comments
 (0)