Просмотр исходного кода

@uppy/companion: fix code for custom providers (#5398)

Fixes: https://github.com/transloadit/uppy/issues/5383
Mikael Finstad 8 месяцев назад
Родитель
Сommit
b332e83444

+ 1 - 1
packages/@uppy/companion/src/companion.js

@@ -150,7 +150,7 @@ module.exports.app = (optionsArg = {}) => {
       logger.info(`Returning dynamic OAuth2 credentials for ${providerName}`)
       // for simplicity, we just return the normal credentials for the provider, but in a real-world scenario,
       // we would query based on parameters
-      const { key, secret } = options.providerOptions[providerName]
+      const { key, secret } = options.providerOptions[providerName] ?? { __proto__: null }
 
       function getRedirectUri() {
         const oauthProvider = getOauthProvider(providerName)

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

@@ -8,7 +8,7 @@ function preauth (req, res) {
   }
 
   const providerConfig = req.companion.options.providerOptions[req.params.providerName]
-  if (!providerConfig.credentialsURL) {
+  if (!providerConfig?.credentialsURL) {
     return res.sendStatus(501)
   }
 

+ 1 - 1
packages/@uppy/companion/src/server/controllers/refresh-token.js

@@ -8,7 +8,7 @@ const logger = require('../logger')
 async function refreshToken (req, res, next) {
   const { providerName } = req.params
 
-  const { key: clientId, secret: clientSecret } = req.companion.options.providerOptions[providerName]
+  const { key: clientId, secret: clientSecret } = req.companion.options.providerOptions[providerName] ?? { __proto__: null }
   const { redirect_uri: redirectUri } = req.companion.providerGrantConfig
 
   const { providerUserSession } = req.companion

+ 3 - 2
packages/@uppy/companion/src/server/middlewares.js

@@ -92,14 +92,15 @@ exports.verifyToken = (req, res, next) => {
   if (!isOAuthProviderReq(req)) {
     const { providerOptions } = req.companion.options
     const { providerName } = req.params
-    if (!providerOptions[providerName] || !providerOptions[providerName].key) {
+    const key = providerOptions[providerName]?.key;
+    if (!key) {
       logger.info(`unconfigured credentials for ${providerName}`, 'non.oauth.token.load.unset', req.id)
       res.sendStatus(501)
       return
     }
 
     req.companion.providerUserSession = {
-      accessToken: providerOptions[providerName].key,
+      accessToken: key,
     }
     next()
   }

+ 1 - 1
packages/@uppy/companion/src/server/provider/index.js

@@ -52,7 +52,7 @@ module.exports.getProviderMiddleware = (providers, grantConfig) => {
         req.companion.providerGrantConfig = providerGrantConfig
       }
 
-      const { secret } = providerOptions[providerName]
+      const secret = providerOptions[providerName]?.secret
       req.companion.provider = new ProviderClass({ secret, providerName, providerGrantConfig, allowLocalUrls })
       req.companion.providerClass = ProviderClass
     } else {