Basic login redirect
continuous-integration/drone/push Build is passing Details

This commit is contained in:
decentral1se 2021-06-11 14:23:13 +02:00
parent 043eaff5fd
commit 82a506278b
Signed by: decentral1se
GPG Key ID: 92DAD76BD9567B8A
4 changed files with 36 additions and 3 deletions

View File

@ -1,15 +1,27 @@
"""Community Keycloak SSO user management.""" """Community Keycloak SSO user management."""
from fastapi import FastAPI, Request from fastapi import FastAPI, Request
from fastapi.responses import HTMLResponse from fastapi.responses import HTMLResponse, RedirectResponse
from fastapi.templating import Jinja2Templates from fastapi.templating import Jinja2Templates
from starlette.middleware.sessions import SessionMiddleware
app = FastAPI() app = FastAPI()
app.add_middleware(SessionMiddleware, secret_key="mysecretzkey")
templates = Jinja2Templates(directory="templates") templates = Jinja2Templates(directory="templates")
@app.get("/", response_class=HTMLResponse) @app.get("/", response_class=HTMLResponse)
async def home(request: Request): async def home(request: Request):
user = request.session.get("user")
if user:
return templates.TemplateResponse(
"index.html", context={"request": request}
)
return RedirectResponse("/login")
@app.get("/login", response_class=HTMLResponse)
async def login(request: Request):
return templates.TemplateResponse( return templates.TemplateResponse(
"index.html", context={"request": request} "login.html", context={"request": request}
) )

14
poetry.lock generated
View File

@ -121,6 +121,14 @@ pipfile_deprecated_finder = ["pipreqs", "requirementslib"]
requirements_deprecated_finder = ["pipreqs", "pip-api"] requirements_deprecated_finder = ["pipreqs", "pip-api"]
colors = ["colorama (>=0.4.3,<0.5.0)"] colors = ["colorama (>=0.4.3,<0.5.0)"]
[[package]]
name = "itsdangerous"
version = "2.0.1"
description = "Safely pass data to untrusted environments and back."
category = "main"
optional = false
python-versions = ">=3.6"
[[package]] [[package]]
name = "jinja2" name = "jinja2"
version = "3.0.1" version = "3.0.1"
@ -324,7 +332,7 @@ python-versions = ">=3.6.1"
[metadata] [metadata]
lock-version = "1.1" lock-version = "1.1"
python-versions = "^3.9" python-versions = "^3.9"
content-hash = "27448995033f96e0639ead7c435ba26b4758706f9e26ecb5ade3d29692959668" content-hash = "a3278c69c36a0390a247780ff0ad55c878d2e1ea028097bd46d8998d1c449ce1"
[metadata.files] [metadata.files]
appdirs = [ appdirs = [
@ -380,6 +388,10 @@ isort = [
{file = "isort-5.8.0-py3-none-any.whl", hash = "sha256:2bb1680aad211e3c9944dbce1d4ba09a989f04e238296c87fe2139faa26d655d"}, {file = "isort-5.8.0-py3-none-any.whl", hash = "sha256:2bb1680aad211e3c9944dbce1d4ba09a989f04e238296c87fe2139faa26d655d"},
{file = "isort-5.8.0.tar.gz", hash = "sha256:0a943902919f65c5684ac4e0154b1ad4fac6dcaa5d9f3426b732f1c8b5419be6"}, {file = "isort-5.8.0.tar.gz", hash = "sha256:0a943902919f65c5684ac4e0154b1ad4fac6dcaa5d9f3426b732f1c8b5419be6"},
] ]
itsdangerous = [
{file = "itsdangerous-2.0.1-py3-none-any.whl", hash = "sha256:5174094b9637652bdb841a3029700391451bd092ba3db90600dea710ba28e97c"},
{file = "itsdangerous-2.0.1.tar.gz", hash = "sha256:9e724d68fc22902a1435351f84c3fb8623f303fffcc566a4cb952df8c572cff0"},
]
jinja2 = [ jinja2 = [
{file = "Jinja2-3.0.1-py3-none-any.whl", hash = "sha256:1f06f2da51e7b56b8f238affdd6b4e2c61e39598a378cc49345bc1bd42a978a4"}, {file = "Jinja2-3.0.1-py3-none-any.whl", hash = "sha256:1f06f2da51e7b56b8f238affdd6b4e2c61e39598a378cc49345bc1bd42a978a4"},
{file = "Jinja2-3.0.1.tar.gz", hash = "sha256:703f484b47a6af502e743c9122595cc812b0271f661722403114f71a79d0f5a4"}, {file = "Jinja2-3.0.1.tar.gz", hash = "sha256:703f484b47a6af502e743c9122595cc812b0271f661722403114f71a79d0f5a4"},

View File

@ -10,6 +10,7 @@ python = "^3.9"
fastapi = "^0.65.2" fastapi = "^0.65.2"
uvicorn = {extras = ["standard"], version = "^0.14.0"} uvicorn = {extras = ["standard"], version = "^0.14.0"}
Jinja2 = "^3.0.1" Jinja2 = "^3.0.1"
itsdangerous = "^2.0.1"
[tool.poetry.dev-dependencies] [tool.poetry.dev-dependencies]
black = "^21.6b0" black = "^21.6b0"

8
templates/login.html Normal file
View File

@ -0,0 +1,8 @@
<html>
<head>
<title>Login</title>
</head>
<body>
<p>Please login</p>
</body>
</html>