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
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')
|
|
|