Working prototype
This commit is contained in:
38
main.py
Normal file
38
main.py
Normal file
@@ -0,0 +1,38 @@
|
||||
from fastapi import FastAPI, Request, Depends, Form, HTTPException
|
||||
from fastapi.responses import RedirectResponse, HTMLResponse
|
||||
from fastapi.staticfiles import StaticFiles
|
||||
from fastapi.templating import Jinja2Templates
|
||||
from starlette.middleware.sessions import SessionMiddleware
|
||||
|
||||
from db.models import Base, engine, SessionLocal, get_db, User
|
||||
|
||||
from auth.session import get_current_user, login_user, logout_user
|
||||
|
||||
from auth import webauthn, oidc
|
||||
|
||||
import uvicorn
|
||||
|
||||
|
||||
app = FastAPI()
|
||||
app.add_middleware(SessionMiddleware, secret_key="my_secret_key")
|
||||
app.include_router(webauthn.router)
|
||||
app.include_router(oidc.router)
|
||||
|
||||
app.mount("/static", StaticFiles(directory="static"), name="static")
|
||||
templates = Jinja2Templates(directory="templates")
|
||||
|
||||
# DB
|
||||
Base.metadata.create_all(bind=engine)
|
||||
|
||||
@app.get("/", response_class=HTMLResponse)
|
||||
def home(request: Request, user: User = Depends(get_current_user)):
|
||||
if not user:
|
||||
return RedirectResponse(url="/login", status_code=303)
|
||||
return templates.TemplateResponse("index.html", {"request": request, "user": user})
|
||||
|
||||
@app.get("/login", response_class=HTMLResponse)
|
||||
def login_form(request: Request):
|
||||
return templates.TemplateResponse("login.html", {"request": request})
|
||||
|
||||
if __name__ == "__main__":
|
||||
uvicorn.run(app, host="0.0.0.0", port=8000)
|
||||
Reference in New Issue
Block a user