import os import msal import requests from fastapi import FastAPI, HTTPException, Request from fastapi.responses import HTMLResponse, RedirectResponse from dotenv import load_dotenv load_dotenv() # Configuration CLIENT_ID = os.getenv('CLIENT_ID_2') CLIENT_SECRET = os.getenv('CLIENT_SECRET_2') TENANT_ID = os.getenv('TENANT_ID') AUTHORITY = f"https://login.microsoftonline.com/common" REDIRECT_URI = 'https://omkar008-micrososft-authentication.hf.space/getAToken' SCOPES = ['Mail.Read'] app = FastAPI() @app.get("/") def read_root(request: Request): # Generate the authorization URL app_instance = msal.ConfidentialClientApplication( CLIENT_ID, CLIENT_SECRET, authority=AUTHORITY ) auth_url = app_instance.get_authorization_request_url(SCOPES, redirect_uri=REDIRECT_URI) return {"auth_url":auth_url} @app.get("/getAToken") def get_a_token(request: Request, code: str): app_instance = msal.ConfidentialClientApplication( CLIENT_ID, CLIENT_SECRET, authority=AUTHORITY ) # Exchange the authorization code for an access token result = app_instance.acquire_token_by_authorization_code(code, SCOPES, redirect_uri=REDIRECT_URI) print(result) if "access_token" in result: access_token = result['access_token'] print(access_token) if not access_token: return {"Access Token Not found !!"} return {"access_token":access_token}