Skip to content

Py Shiny Who Am I

TODO: link to github

from shiny import App, ui, render, session

app_ui = ui.page_fluid(
    ui.tags.style("""
        .centered {
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            flex-direction: column;
            text-align: center;
        }
        .user-name {
            font-size: 2.5em;
            font-weight: bold;
        }
        .user-id .user-email {
            font-size: 1em;
            margin-top: 10px;
        }
    """),
    ui.div(
        ui.div(ui.output_text("user_name"), class_="user-name"),
        ui.div(ui.output_text("user_email"), class_="user-email"),
        ui.div(ui.output_text("user_id"), class_="user-id"),
        class_="centered"
    )
)

def server(input, output, session):

    @render.text
    def user_name():
        return session.http_conn.headers.get('X-Forwarded-Preferred-Username', 'Not available')

    @render.text
    def user_id():
        return session.http_conn.headers.get('X-Forwarded-User', 'Not available')

    @render.text
    def user_email():
        return session.http_conn.headers.get('X-Forwarded-Email', 'Not available')

app = App(app_ui, server)

if __name__ == "__main__":
    app.run()
shiny