Browse Source

companion: fix running on a subpath (#2841)

Co-authored-by: Niklas Salmoukas <niklas@salmoukas.com>
Renée Kooi 4 years ago
parent
commit
b46be23fbe

+ 2 - 1
packages/@uppy/companion-client/package.json

@@ -23,6 +23,7 @@
   "dependencies": {
     "@uppy/utils": "file:../utils",
     "namespace-emitter": "^2.0.1",
-    "qs-stringify": "^1.1.0"
+    "qs-stringify": "^1.1.0",
+    "url-parse": "^1.4.7"
   }
 }

+ 2 - 1
packages/@uppy/companion-client/src/Provider.js

@@ -1,6 +1,7 @@
 'use strict'
 
 const qsStringify = require('qs-stringify')
+const URL = require('url-parse')
 const RequestClient = require('./RequestClient')
 const tokenStorage = require('./tokenStorage')
 
@@ -117,7 +118,7 @@ module.exports = class Provider extends RequestClient {
       if (/^(?!https?:\/\/).*$/i.test(opts.companionUrl)) {
         plugin.opts.companionAllowedHosts = `https://${opts.companionUrl.replace(/^\/\//, '')}`
       } else {
-        plugin.opts.companionAllowedHosts = opts.companionUrl
+        plugin.opts.companionAllowedHosts = new URL(opts.companionUrl).origin
       }
     }
 

+ 1 - 1
packages/@uppy/companion/src/server/controllers/oauth-redirect.js

@@ -12,7 +12,7 @@ module.exports = function oauthRedirect (req, res) {
   const params = qs.stringify(req.query)
   const { authProvider } = req.companion.provider
   if (!req.companion.options.server.oauthDomain) {
-    return res.redirect(`/connect/${authProvider}/callback?${params}`)
+    return res.redirect(req.companion.buildURL(`/connect/${authProvider}/callback?${params}`, true))
   }
 
   const dynamic = (req.session.grant || {}).dynamic || {}