mirror of
https://github.com/danswer-ai/danswer.git
synced 2025-09-19 20:24:32 +02:00
Fixes issue on cloud with redirect URI during token fetching
This commit is contained in:
@@ -201,7 +201,7 @@ class EgnyteConnector(LoadConnector, PollConnector, OAuthConnector):
|
|||||||
)
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def oauth_code_to_token(cls, code: str) -> dict[str, Any]:
|
def oauth_code_to_token(cls, base_domain: str, code: str) -> dict[str, Any]:
|
||||||
if not EGNYTE_CLIENT_ID:
|
if not EGNYTE_CLIENT_ID:
|
||||||
raise ValueError("EGNYTE_CLIENT_ID environment variable must be set")
|
raise ValueError("EGNYTE_CLIENT_ID environment variable must be set")
|
||||||
if not EGNYTE_CLIENT_SECRET:
|
if not EGNYTE_CLIENT_SECRET:
|
||||||
@@ -211,12 +211,13 @@ class EgnyteConnector(LoadConnector, PollConnector, OAuthConnector):
|
|||||||
|
|
||||||
# Exchange code for token
|
# Exchange code for token
|
||||||
url = f"https://{EGNYTE_BASE_DOMAIN}.egnyte.com/puboauth/token"
|
url = f"https://{EGNYTE_BASE_DOMAIN}.egnyte.com/puboauth/token"
|
||||||
|
redirect_uri = f"{EGNYTE_LOCALHOST_OVERRIDE or base_domain}/connector/oauth/callback/egnyte"
|
||||||
data = {
|
data = {
|
||||||
"client_id": EGNYTE_CLIENT_ID,
|
"client_id": EGNYTE_CLIENT_ID,
|
||||||
"client_secret": EGNYTE_CLIENT_SECRET,
|
"client_secret": EGNYTE_CLIENT_SECRET,
|
||||||
"code": code,
|
"code": code,
|
||||||
"grant_type": "authorization_code",
|
"grant_type": "authorization_code",
|
||||||
"redirect_uri": f"{EGNYTE_LOCALHOST_OVERRIDE or ''}/connector/oauth/callback/egnyte",
|
"redirect_uri": redirect_uri,
|
||||||
"scope": "Egnyte.filesystem",
|
"scope": "Egnyte.filesystem",
|
||||||
}
|
}
|
||||||
headers = {"Content-Type": "application/x-www-form-urlencoded"}
|
headers = {"Content-Type": "application/x-www-form-urlencoded"}
|
||||||
|
@@ -78,7 +78,7 @@ class OAuthConnector(BaseConnector):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@abc.abstractmethod
|
@abc.abstractmethod
|
||||||
def oauth_code_to_token(cls, code: str) -> dict[str, Any]:
|
def oauth_code_to_token(cls, base_domain: str, code: str) -> dict[str, Any]:
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
|
|
||||||
|
@@ -117,7 +117,8 @@ def oauth_callback(
|
|||||||
raise HTTPException(status_code=400, detail="Invalid OAuth state")
|
raise HTTPException(status_code=400, detail="Invalid OAuth state")
|
||||||
original_url = original_url_bytes.decode("utf-8")
|
original_url = original_url_bytes.decode("utf-8")
|
||||||
|
|
||||||
token_info = connector_cls.oauth_code_to_token(code)
|
base_url = WEB_DOMAIN
|
||||||
|
token_info = connector_cls.oauth_code_to_token(base_url, code)
|
||||||
|
|
||||||
# Create a new credential with the token info
|
# Create a new credential with the token info
|
||||||
credential_data = CredentialBase(
|
credential_data = CredentialBase(
|
||||||
|
Reference in New Issue
Block a user