Skip to main content

Базовая авторизация

Реализуем следующий процесс авторизации:

Делаем страницу с проверкой, авторизован или нет пользователь. Если пользователь не авторизован, показываем кнопку Авторизация. Если авторизован - кнопку Выход. Кнопки отличаются ссылками и текстом.

Будем использовать модуль python-keycloak 

pip install python-keycloak

Стартовый endpoint:

@app.get("/simpleauth", response_class=HTMLResponse)
async def simpleauth(request: Request):
    guest_content = '<!DOCTYPE html><html><body><a href="https://google.com"><button>Авторизация</button></a></body></html>'
    return HTMLResponse(content=guest_content, status_code=200)

Это конечно больше похоже на SPA, но я пытаюсь понять сам процесс.

Настройка keycloak.

Создаем realm для данного эксперимента. Назовем его pythonsimpletest.

В разделе Manage realms - Create

image.png

Теперь создаем клиента. Назовем его clientforsimpletest. Clients - Create client

image.png

 Поскольку этот клиент доверенный и расположен на сервере, то Client authentication включаем, 

image.png

image.png