I hereby claim:
- I am nilsdebruin on github.
- I am nilsdebruin (https://keybase.io/nilsdebruin) on keybase.
- I have a public key ASDHeYKxS8GeG_QFQjWLz829UwfNR1NWC3OVRzTDqlTVvQo
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object:
| @app.get("/") | |
| async def homepage(): | |
| return "Welcome to the security test!" | |
| @app.get(f"{ERROR_ROUTE}", tags=["security"]) | |
| async def login_error(): | |
| return "Something went wrong logging in!" | |
| @app.get("/google_login_client", tags=["security"]) | |
| def google_login_client(): | |
| return HTMLResponse(google_login_javascript_client) | |
| @app.get("/google_login_server", tags=["security"]) | |
| def google_login_server(): | |
| return HTMLResponse(google_login_javascript_server) |
| def get_user_by_email(db, email: str): | |
| for username, value in db.items(): | |
| if value.get("email") == email: | |
| user_dict = db[username] | |
| return User(**user_dict) | |
| def authenticate_user_email(fake_db, email: str): | |
| user = get_user_by_email(fake_db, email) | |
| if not user: |
| class Token(BaseModel): | |
| access_token: str | |
| token_type: str | |
| class TokenData(BaseModel): | |
| username: str = None | |
| email: str = None | |
| google_login_javascript_client = f"""<!DOCTYPE html> | |
| <html itemscope itemtype="http://schema.org/Article"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="google-signin-client_id" content="{CLIENT_ID}"> | |
| <title>Google Login</title><script src="https://apis.google.com/js/platform.js" async defer></script> | |
| <body> | |
| <div class="g-signin2" data-onsuccess="onSignIn"></div> | |
| <script>function onSignIn(googleUser) {{ | |
| COOKIE_AUTHORIZATION_NAME = "Authorization" | |
| COOKIE_DOMAIN = "<YOUR_DOMAIN_NAME>" | |
| PROTOCOL = "http://" | |
| FULL_HOST_NAME = "<YOUR_DOMAIN_NAME>" | |
| PORT_NUMBER = 8000 | |
| CLIENT_ID = "1007436511433-1o329ffhgodf6ipbmgqm99r2kkjsoj9u.apps.googleusercontent.com" | |
| CLIENT_SECRETS_JSON = "client_secret_1007436511433-1o329ffhgodf6ipbmgqm99r2kkjsoj9u.apps.googleusercontent.com.json" |
| from typing import Optional | |
| from datetime import datetime, timedelta | |
| import jwt | |
| from jwt import PyJWTError | |
| from fastapi import Depends, FastAPI, HTTPException | |
| from fastapi.encoders import jsonable_encoder | |
| from fastapi.security.oauth2 import ( | |
| OAuth2, |
| @app.get("/secure_endpoint", tags=["test"]) | |
| async def get_open_api_endpoint(api_key: APIKey = Depends(get_api_key)): | |
| response = "How cool is this?" | |
| return response |