in UI/utils.py [0:0]
def view_auth_google(code) -> tuple[str, str]:
"""
Retrieve the Code and Tokens
"""
logger.info("Extracting the Code and Generating the Tokens")
logger.info(f"Query Parameters - {st.query_params}")
config = configparser.ConfigParser()
config.read('config.ini')
google_client_id = config['DEFAULT']['GOOGLE_CLIENT_ID']
google_client_secret = config['DEFAULT']['GOOGLE_CLIENT_SECRET']
google_redirect_uri = config['DEFAULT']['GOOGLE_REDIRECT_URI']
token_url = "https://accounts.google.com/o/oauth2/token"
data = {
"code": code,
"client_id": google_client_id,
"client_secret": google_client_secret,
"redirect_uri": google_redirect_uri,
"grant_type": "authorization_code",
}
logger.info(f"Auth info =, {data}")
try:
logger.info("Using requests library itself")
response = requests.post(token_url, data=data, timeout=None)
logger.info(f"Auth response = {response.json()}")
access_token = response.json().get("access_token")
id_token = response.json().get("id_token")
logger.info(f"Access token = {access_token}")
logger.info(f"ID Token = {id_token}")
except Exception:
logger.error("Authentication via Requests library failed")
user_info = requests\
.get("https://www.googleapis.com/oauth2/v1/userinfo",
headers={"Authorization": f"Bearer {access_token}"},
timeout=None)
logger.info(f"Decoded User info : {user_info.json()}")
response_data = {"token": id_token, "access_token": access_token}
logger.info(f"Response data = {response_data}")
return id_token, access_token