Omkar008/micrososft_authentication
0
1import os2import msal3import requests4from fastapi import FastAPI, HTTPException, Request5from fastapi.responses import HTMLResponse, RedirectResponse6from dotenv import load_dotenv7 8load_dotenv()9 10# Configuration11CLIENT_ID = os.getenv('CLIENT_ID_2')12CLIENT_SECRET = os.getenv('CLIENT_SECRET_2')13TENANT_ID = os.getenv('TENANT_ID')14AUTHORITY = f"https://login.microsoftonline.com/common"15REDIRECT_URI = 'https://omkar008-micrososft-authentication.hf.space/getAToken'16SCOPES = ['Mail.Read']17 18app = FastAPI()19 20 21@app.get("/")22def read_root(request: Request):23 # Generate the authorization URL24 app_instance = msal.ConfidentialClientApplication(25 CLIENT_ID,26 CLIENT_SECRET,27 authority=AUTHORITY28 )29 auth_url = app_instance.get_authorization_request_url(SCOPES, redirect_uri=REDIRECT_URI)30 return {"auth_url":auth_url}31 32@app.get("/getAToken")33def get_a_token(request: Request, code: str):34 app_instance = msal.ConfidentialClientApplication(35 CLIENT_ID,36 CLIENT_SECRET,37 authority=AUTHORITY38 )39 40 # Exchange the authorization code for an access token41 result = app_instance.acquire_token_by_authorization_code(code, SCOPES, redirect_uri=REDIRECT_URI)42 print(result)43 if "access_token" in result:44 access_token = result['access_token']45 print(access_token)46 if not access_token:47 return {"Access Token Not found !!"}48 49 return {"access_token":access_token}