Skip to content

Commit 9824174

Browse files
committed
Add containerized OIDC flow demo
0 parents  commit 9824174

7 files changed

Lines changed: 448 additions & 0 deletions

File tree

.dockerignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
.git
2+
.gitignore
3+
.env
4+
__pycache__
5+
*.pyc

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
.env
2+
__pycache__/
3+
*.pyc

Dockerfile

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
FROM python:3.13-slim
2+
3+
ENV PYTHONDONTWRITEBYTECODE=1 \
4+
PYTHONUNBUFFERED=1
5+
6+
WORKDIR /app
7+
8+
COPY requirements.txt .
9+
RUN pip install --no-cache-dir -r requirements.txt
10+
11+
COPY app.py .
12+
13+
EXPOSE 8080
14+
15+
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
16+
CMD python -c "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8080/health', timeout=3)"
17+
18+
CMD ["gunicorn", "-w", "2", "-b", "0.0.0.0:8080", "--timeout", "30", "app:app"]

README.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Logto OIDC Flow Demo
2+
3+
Eine kleine Flask-Demo, die den OIDC Authorization Code Flow bewusst in getrennten Schritten zeigt:
4+
5+
1. Bei Logto anmelden und Authorization Code anzeigen
6+
2. Code serverseitig gegen Tokens tauschen
7+
3. Access Token introspektieren und `active`, `sub` sowie Claims anzeigen
8+
4. Token widerrufen und die Logto-Browsersitzung beenden
9+
10+
## Konfiguration
11+
12+
Die Anwendung benoetigt diese Umgebungsvariablen:
13+
14+
```text
15+
LOGTO_ISSUER=https://tenant.logto.app/oidc
16+
LOGTO_CLIENT_ID=...
17+
LOGTO_CLIENT_SECRET=...
18+
```
19+
20+
Secrets duerfen nicht in das Repository oder in das Docker-Image geschrieben werden.
21+
22+
## Lokal starten
23+
24+
Eine `.env`-Datei mit den drei Variablen anlegen und danach ausfuehren:
25+
26+
```shell
27+
docker compose up --build
28+
```
29+
30+
Die Demo ist dann unter `http://localhost:3001` erreichbar.

0 commit comments

Comments
 (0)