mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-04-25 00:36:31 +02:00
chore: refactor Microsoft OAuth configuration to unify client ID and secret for Teams and OneDrive in environment files and related code
This commit is contained in:
parent
bb894ee158
commit
7004e764a9
6 changed files with 24 additions and 36 deletions
|
|
@ -203,14 +203,10 @@ STT_SERVICE=local/base
|
||||||
# AIRTABLE_CLIENT_SECRET=
|
# AIRTABLE_CLIENT_SECRET=
|
||||||
# AIRTABLE_REDIRECT_URI=http://localhost:8000/api/v1/auth/airtable/connector/callback
|
# AIRTABLE_REDIRECT_URI=http://localhost:8000/api/v1/auth/airtable/connector/callback
|
||||||
|
|
||||||
# -- Microsoft Teams --
|
# -- Microsoft OAuth (shared for Teams and OneDrive) --
|
||||||
# TEAMS_CLIENT_ID=
|
# MICROSOFT_CLIENT_ID=
|
||||||
# TEAMS_CLIENT_SECRET=
|
# MICROSOFT_CLIENT_SECRET=
|
||||||
# TEAMS_REDIRECT_URI=http://localhost:8000/api/v1/auth/teams/connector/callback
|
# TEAMS_REDIRECT_URI=http://localhost:8000/api/v1/auth/teams/connector/callback
|
||||||
|
|
||||||
# -- Microsoft OneDrive --
|
|
||||||
# ONEDRIVE_CLIENT_ID=
|
|
||||||
# ONEDRIVE_CLIENT_SECRET=
|
|
||||||
# ONEDRIVE_REDIRECT_URI=http://localhost:8000/api/v1/auth/onedrive/connector/callback
|
# ONEDRIVE_REDIRECT_URI=http://localhost:8000/api/v1/auth/onedrive/connector/callback
|
||||||
|
|
||||||
# -- Composio --
|
# -- Composio --
|
||||||
|
|
|
||||||
|
|
@ -95,14 +95,10 @@ SLACK_CLIENT_ID=your_slack_client_id_here
|
||||||
SLACK_CLIENT_SECRET=your_slack_client_secret_here
|
SLACK_CLIENT_SECRET=your_slack_client_secret_here
|
||||||
SLACK_REDIRECT_URI=http://localhost:8000/api/v1/auth/slack/connector/callback
|
SLACK_REDIRECT_URI=http://localhost:8000/api/v1/auth/slack/connector/callback
|
||||||
|
|
||||||
# Microsoft Teams OAuth Configuration
|
# Microsoft OAuth (shared for Teams and OneDrive)
|
||||||
TEAMS_CLIENT_ID=your_teams_client_id_here
|
MICROSOFT_CLIENT_ID=your_microsoft_client_id_here
|
||||||
TEAMS_CLIENT_SECRET=your_teams_client_secret_here
|
MICROSOFT_CLIENT_SECRET=your_microsoft_client_secret_here
|
||||||
TEAMS_REDIRECT_URI=http://localhost:8000/api/v1/auth/teams/connector/callback
|
TEAMS_REDIRECT_URI=http://localhost:8000/api/v1/auth/teams/connector/callback
|
||||||
|
|
||||||
# Microsoft OneDrive OAuth
|
|
||||||
ONEDRIVE_CLIENT_ID=your_onedrive_client_id_here
|
|
||||||
ONEDRIVE_CLIENT_SECRET=your_onedrive_client_secret_here
|
|
||||||
ONEDRIVE_REDIRECT_URI=http://localhost:8000/api/v1/auth/onedrive/connector/callback
|
ONEDRIVE_REDIRECT_URI=http://localhost:8000/api/v1/auth/onedrive/connector/callback
|
||||||
|
|
||||||
# Composio Connector
|
# Composio Connector
|
||||||
|
|
|
||||||
|
|
@ -281,14 +281,10 @@ class Config:
|
||||||
DISCORD_REDIRECT_URI = os.getenv("DISCORD_REDIRECT_URI")
|
DISCORD_REDIRECT_URI = os.getenv("DISCORD_REDIRECT_URI")
|
||||||
DISCORD_BOT_TOKEN = os.getenv("DISCORD_BOT_TOKEN")
|
DISCORD_BOT_TOKEN = os.getenv("DISCORD_BOT_TOKEN")
|
||||||
|
|
||||||
# Microsoft Teams OAuth
|
# Microsoft OAuth (shared for Teams and OneDrive)
|
||||||
TEAMS_CLIENT_ID = os.getenv("TEAMS_CLIENT_ID")
|
MICROSOFT_CLIENT_ID = os.getenv("MICROSOFT_CLIENT_ID")
|
||||||
TEAMS_CLIENT_SECRET = os.getenv("TEAMS_CLIENT_SECRET")
|
MICROSOFT_CLIENT_SECRET = os.getenv("MICROSOFT_CLIENT_SECRET")
|
||||||
TEAMS_REDIRECT_URI = os.getenv("TEAMS_REDIRECT_URI")
|
TEAMS_REDIRECT_URI = os.getenv("TEAMS_REDIRECT_URI")
|
||||||
|
|
||||||
# Microsoft OneDrive OAuth
|
|
||||||
ONEDRIVE_CLIENT_ID = os.getenv("ONEDRIVE_CLIENT_ID")
|
|
||||||
ONEDRIVE_CLIENT_SECRET = os.getenv("ONEDRIVE_CLIENT_SECRET")
|
|
||||||
ONEDRIVE_REDIRECT_URI = os.getenv("ONEDRIVE_REDIRECT_URI")
|
ONEDRIVE_REDIRECT_URI = os.getenv("ONEDRIVE_REDIRECT_URI")
|
||||||
|
|
||||||
# ClickUp OAuth
|
# ClickUp OAuth
|
||||||
|
|
|
||||||
|
|
@ -98,8 +98,8 @@ class OneDriveClient:
|
||||||
|
|
||||||
async def _refresh_token(self, refresh_token: str) -> dict:
|
async def _refresh_token(self, refresh_token: str) -> dict:
|
||||||
data = {
|
data = {
|
||||||
"client_id": config.ONEDRIVE_CLIENT_ID,
|
"client_id": config.MICROSOFT_CLIENT_ID,
|
||||||
"client_secret": config.ONEDRIVE_CLIENT_SECRET,
|
"client_secret": config.MICROSOFT_CLIENT_SECRET,
|
||||||
"grant_type": "refresh_token",
|
"grant_type": "refresh_token",
|
||||||
"refresh_token": refresh_token,
|
"refresh_token": refresh_token,
|
||||||
"scope": "offline_access User.Read Files.Read.All Files.ReadWrite.All",
|
"scope": "offline_access User.Read Files.Read.All Files.ReadWrite.All",
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ async def connect_onedrive(space_id: int, user: User = Depends(current_active_us
|
||||||
try:
|
try:
|
||||||
if not space_id:
|
if not space_id:
|
||||||
raise HTTPException(status_code=400, detail="space_id is required")
|
raise HTTPException(status_code=400, detail="space_id is required")
|
||||||
if not config.ONEDRIVE_CLIENT_ID:
|
if not config.MICROSOFT_CLIENT_ID:
|
||||||
raise HTTPException(status_code=500, detail="Microsoft OneDrive OAuth not configured.")
|
raise HTTPException(status_code=500, detail="Microsoft OneDrive OAuth not configured.")
|
||||||
if not config.SECRET_KEY:
|
if not config.SECRET_KEY:
|
||||||
raise HTTPException(status_code=500, detail="SECRET_KEY not configured for OAuth security.")
|
raise HTTPException(status_code=500, detail="SECRET_KEY not configured for OAuth security.")
|
||||||
|
|
@ -87,7 +87,7 @@ async def connect_onedrive(space_id: int, user: User = Depends(current_active_us
|
||||||
state_encoded = state_manager.generate_secure_state(space_id, user.id)
|
state_encoded = state_manager.generate_secure_state(space_id, user.id)
|
||||||
|
|
||||||
auth_params = {
|
auth_params = {
|
||||||
"client_id": config.ONEDRIVE_CLIENT_ID,
|
"client_id": config.MICROSOFT_CLIENT_ID,
|
||||||
"response_type": "code",
|
"response_type": "code",
|
||||||
"redirect_uri": config.ONEDRIVE_REDIRECT_URI,
|
"redirect_uri": config.ONEDRIVE_REDIRECT_URI,
|
||||||
"response_mode": "query",
|
"response_mode": "query",
|
||||||
|
|
@ -138,7 +138,7 @@ async def reauth_onedrive(
|
||||||
state_encoded = state_manager.generate_secure_state(space_id, user.id, **extra)
|
state_encoded = state_manager.generate_secure_state(space_id, user.id, **extra)
|
||||||
|
|
||||||
auth_params = {
|
auth_params = {
|
||||||
"client_id": config.ONEDRIVE_CLIENT_ID,
|
"client_id": config.MICROSOFT_CLIENT_ID,
|
||||||
"response_type": "code",
|
"response_type": "code",
|
||||||
"redirect_uri": config.ONEDRIVE_REDIRECT_URI,
|
"redirect_uri": config.ONEDRIVE_REDIRECT_URI,
|
||||||
"response_mode": "query",
|
"response_mode": "query",
|
||||||
|
|
@ -200,8 +200,8 @@ async def onedrive_callback(
|
||||||
reauth_return_url = data.get("return_url")
|
reauth_return_url = data.get("return_url")
|
||||||
|
|
||||||
token_data = {
|
token_data = {
|
||||||
"client_id": config.ONEDRIVE_CLIENT_ID,
|
"client_id": config.MICROSOFT_CLIENT_ID,
|
||||||
"client_secret": config.ONEDRIVE_CLIENT_SECRET,
|
"client_secret": config.MICROSOFT_CLIENT_SECRET,
|
||||||
"code": code,
|
"code": code,
|
||||||
"redirect_uri": config.ONEDRIVE_REDIRECT_URI,
|
"redirect_uri": config.ONEDRIVE_REDIRECT_URI,
|
||||||
"grant_type": "authorization_code",
|
"grant_type": "authorization_code",
|
||||||
|
|
@ -416,8 +416,8 @@ async def refresh_onedrive_token(
|
||||||
raise HTTPException(status_code=400, detail=f"No refresh token available for connector {connector.id}")
|
raise HTTPException(status_code=400, detail=f"No refresh token available for connector {connector.id}")
|
||||||
|
|
||||||
refresh_data = {
|
refresh_data = {
|
||||||
"client_id": config.ONEDRIVE_CLIENT_ID,
|
"client_id": config.MICROSOFT_CLIENT_ID,
|
||||||
"client_secret": config.ONEDRIVE_CLIENT_SECRET,
|
"client_secret": config.MICROSOFT_CLIENT_SECRET,
|
||||||
"grant_type": "refresh_token",
|
"grant_type": "refresh_token",
|
||||||
"refresh_token": refresh_token,
|
"refresh_token": refresh_token,
|
||||||
"scope": " ".join(SCOPES),
|
"scope": " ".join(SCOPES),
|
||||||
|
|
|
||||||
|
|
@ -88,7 +88,7 @@ async def connect_teams(space_id: int, user: User = Depends(current_active_user)
|
||||||
if not space_id:
|
if not space_id:
|
||||||
raise HTTPException(status_code=400, detail="space_id is required")
|
raise HTTPException(status_code=400, detail="space_id is required")
|
||||||
|
|
||||||
if not config.TEAMS_CLIENT_ID:
|
if not config.MICROSOFT_CLIENT_ID:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=500, detail="Microsoft Teams OAuth not configured."
|
status_code=500, detail="Microsoft Teams OAuth not configured."
|
||||||
)
|
)
|
||||||
|
|
@ -106,7 +106,7 @@ async def connect_teams(space_id: int, user: User = Depends(current_active_user)
|
||||||
from urllib.parse import urlencode
|
from urllib.parse import urlencode
|
||||||
|
|
||||||
auth_params = {
|
auth_params = {
|
||||||
"client_id": config.TEAMS_CLIENT_ID,
|
"client_id": config.MICROSOFT_CLIENT_ID,
|
||||||
"response_type": "code",
|
"response_type": "code",
|
||||||
"redirect_uri": config.TEAMS_REDIRECT_URI,
|
"redirect_uri": config.TEAMS_REDIRECT_URI,
|
||||||
"response_mode": "query",
|
"response_mode": "query",
|
||||||
|
|
@ -181,8 +181,8 @@ async def teams_callback(
|
||||||
|
|
||||||
# Exchange authorization code for access token
|
# Exchange authorization code for access token
|
||||||
token_data = {
|
token_data = {
|
||||||
"client_id": config.TEAMS_CLIENT_ID,
|
"client_id": config.MICROSOFT_CLIENT_ID,
|
||||||
"client_secret": config.TEAMS_CLIENT_SECRET,
|
"client_secret": config.MICROSOFT_CLIENT_SECRET,
|
||||||
"code": code,
|
"code": code,
|
||||||
"redirect_uri": config.TEAMS_REDIRECT_URI,
|
"redirect_uri": config.TEAMS_REDIRECT_URI,
|
||||||
"grant_type": "authorization_code",
|
"grant_type": "authorization_code",
|
||||||
|
|
@ -403,8 +403,8 @@ async def refresh_teams_token(
|
||||||
|
|
||||||
# Microsoft uses oauth2/v2.0/token for token refresh
|
# Microsoft uses oauth2/v2.0/token for token refresh
|
||||||
refresh_data = {
|
refresh_data = {
|
||||||
"client_id": config.TEAMS_CLIENT_ID,
|
"client_id": config.MICROSOFT_CLIENT_ID,
|
||||||
"client_secret": config.TEAMS_CLIENT_SECRET,
|
"client_secret": config.MICROSOFT_CLIENT_SECRET,
|
||||||
"grant_type": "refresh_token",
|
"grant_type": "refresh_token",
|
||||||
"refresh_token": refresh_token,
|
"refresh_token": refresh_token,
|
||||||
"scope": " ".join(SCOPES),
|
"scope": " ".join(SCOPES),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue