|
| 1 | +import requests as url_requests |
1 | 2 | from fastapi import APIRouter, Request, Depends, status, Response, HTTPException |
2 | 3 | from fastapi.responses import RedirectResponse |
3 | 4 | from fastapi.responses import HTMLResponse |
4 | 5 | from fastapi.templating import Jinja2Templates |
5 | 6 | from pathlib import Path |
| 7 | +import http3 |
| 8 | + |
6 | 9 |
|
7 | 10 | import src.oauth2 as oauth2 |
8 | 11 | from src.config import Settings |
@@ -32,10 +35,24 @@ async def home(request: Request, response_model=HTMLResponse): |
32 | 35 |
|
33 | 36 | @router.get("/login", status_code=status.HTTP_200_OK) |
34 | 37 | async def signin(request: Request, response_model=HTMLResponse): |
| 38 | + return TEMPLATES.TemplateResponse("accounts/login.html", {"request" : request}) |
35 | 39 |
|
36 | | - print('\n\n') |
37 | | - print(request.method) |
38 | | - print('\n\n') |
| 40 | +@router.post("/login", status_code=status.HTTP_200_OK) |
| 41 | +async def signin(request: Request, response_model=HTMLResponse): |
| 42 | + form = await request.form() |
| 43 | + form = form._dict |
| 44 | + form.pop('login') |
| 45 | + |
| 46 | + base_url = request.base_url |
| 47 | + login_url = app.auth_router.url_path_for('login') |
| 48 | + request_url = base_url.__str__() + login_url.__str__()[1:] |
| 49 | + |
| 50 | + http3client = http3.AsyncClient() |
| 51 | + response = await http3client.post(request_url, data=form) |
| 52 | + |
| 53 | + if (response.status_code==200): |
| 54 | + data = response.json() |
| 55 | + token = data['access_token'] |
39 | 56 |
|
40 | 57 | return TEMPLATES.TemplateResponse("accounts/login.html", {"request" : request}) |
41 | 58 |
|
|
0 commit comments