in dialogflow-cx/vpc-sc-auth-server/server/app.py [0:0]
def callback():
"""Callback route, redirects to the user-provided return_to URL."""
args = request.args.to_dict()
state = json.loads(b64decode(args["state"]))
redirect_path = state["return_to"]
session_id = state["session_id"]
data = {
"code": args["code"],
"client_id": os.getenv("CLIENT_ID"),
"client_secret": access_secret_version(
project_id, "application-client-secret", "latest"
)["response"],
"redirect_uri": get_redirect_url(),
"grant_type": "authorization_code",
}
resp = requests.post(
"https://oauth2.googleapis.com/token",
data=data,
timeout=10,
).json()
info = id_token.verify_oauth2_token(resp["id_token"], reqs.Request())
session.create(
{
"id_token": resp["id_token"],
"access_token": resp["access_token"],
"refresh_token": resp["refresh_token"],
"email": info["email"],
"expiration": info["exp"],
"origin": redirect_path,
},
session_id=session_id,
public_pem=state["public_pem"],
)
if session_id is None:
logger.critical("Could not create session")
return Response(status=403)
response = redirect(redirect_path)
return response