You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

29 lines
1023 B

from nicegui import app, ui
from services.auth.oidc import oidc_config
from fastapi import Request
from services.log import access_logger as logger
@ui.page('/')
def main_page(request: Request = None) -> None:
async def logout() -> None:
user_id = app.storage.user.get('user_id')
logger.info(f"User logout initiated")
if oidc_config.logout_user():
ui.navigate.to('/login')
else:
ui.notify('Logout failed', color='negative')
logger.error("Logout failed")
with ui.column().classes('absolute-center items-center'):
username = app.storage.user.get('username', 'Unknown')
email = app.storage.user.get('email', '')
ui.timer(10, oidc_config.refresh_access_token, immediate=False)
ui.label(f'Hello {username}!').classes('text-2xl')
if email:
ui.label(f'Email: {email}').classes('text-sm text-gray-600')
ui.button(on_click=logout, icon='logout').props('outline round')