From bcaa7d5d29fd4f8e8db7a509e68de0916af141de Mon Sep 17 00:00:00 2001 From: btribonde <49305499+btribonde@users.noreply.github.com> Date: Sat, 15 Jun 2024 15:41:34 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=9B=A4=EF=B8=8F=20feat:=20Proxy=20Support?= =?UTF-8?q?=20for=20OpenID=20Login=20(#3051)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/danny-avila/LibreChat/issues/3041 --- api/strategies/openidStrategy.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/api/strategies/openidStrategy.js b/api/strategies/openidStrategy.js index b69b63776d..30762898a6 100644 --- a/api/strategies/openidStrategy.js +++ b/api/strategies/openidStrategy.js @@ -1,7 +1,8 @@ const fetch = require('node-fetch'); const passport = require('passport'); const jwtDecode = require('jsonwebtoken/decode'); -const { Issuer, Strategy: OpenIDStrategy } = require('openid-client'); +const { HttpsProxyAgent } = require('https-proxy-agent'); +const { Issuer, Strategy: OpenIDStrategy, custom } = require('openid-client'); const { getStrategyFunctions } = require('~/server/services/Files/strategies'); const { findUser, createUser, updateUser } = require('~/models/userMethods'); const { logger } = require('~/config'); @@ -67,6 +68,13 @@ function convertToUsername(input, defaultValue = '') { async function setupOpenId() { try { + if (process.env.PROXY) { + const proxyAgent = new HttpsProxyAgent(process.env.PROXY); + custom.setHttpOptionsDefaults({ + agent: proxyAgent + }); + logger.info(`[openidStrategy] proxy agent added: ${process.env.PROXY}`); + } const issuer = await Issuer.discover(process.env.OPENID_ISSUER); const client = new issuer.Client({ client_id: process.env.OPENID_CLIENT_ID,