61 lines
1.5 KiB
Python
61 lines
1.5 KiB
Python
"""
|
|
Router endpoints for auth module
|
|
Contains oauth registration
|
|
|
|
Endpoints:
|
|
"""
|
|
from fastapi import APIRouter
|
|
|
|
router = APIRouter(
|
|
tags=["auth"],
|
|
)
|
|
|
|
|
|
|
|
|
|
# oauth = OAuth()
|
|
# oauth.register(
|
|
# name="oidc",
|
|
# server_metadata_url=auth_settings.OIDC_CONFIG,
|
|
# client_id=auth_settings.CLIENT_ID,
|
|
# client_secret=None,
|
|
# code_challenge_method="S256",
|
|
# client_kwargs={
|
|
# "code_challenge_method": "S256",
|
|
# "scope": "openid profile email",
|
|
# }
|
|
# )
|
|
|
|
|
|
# @auth_router.get('/login')
|
|
# async def login(request: Request):
|
|
# redirect_uri = request.url_for('auth')
|
|
# return await oauth.oidc.authorize_redirect(request, redirect_uri, code_challenge_method="S256")
|
|
#
|
|
#
|
|
# @auth_router.get('/auth', include_in_schema=False)
|
|
# async def auth(db: db_dependency, request: Request):
|
|
# token = await oauth.oidc.authorize_access_token(request)
|
|
# user = token.get("userinfo")
|
|
# request.session["user"] = user
|
|
#
|
|
# try:
|
|
# valid_user = OIDCUser(first_name=user["given_name"], last_name=user["family_name"], email=user["email"], oidc_id=user["sub"])
|
|
# except Exception as e:
|
|
# print(e)
|
|
# raise HTTPException(status_code=422, detail="Invalid or missing OIDC data")
|
|
#
|
|
# user_exists = db.query(exists().where(User.oidc_id == valid_user.oidc_id)).scalar()
|
|
#
|
|
# if not user_exists:
|
|
# user_model = User(**valid_user.model_dump())
|
|
# db.add(user_model)
|
|
# db.commit()
|
|
#
|
|
# return RedirectResponse(url="/")
|
|
#
|
|
#
|
|
# @auth_router.get('/logout')
|
|
# async def logout(request: Request):
|
|
# request.session.pop('user', None)
|
|
# return RedirectResponse(url='/')
|