feat(auth): init Authlib + provider LinkedIn (config env) (#88)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Colin Maudry
2026-06-24 23:11:26 +02:00
parent d72cad90ec
commit d79e990c04
5 changed files with 40 additions and 0 deletions
+21
View File
@@ -0,0 +1,21 @@
import os
from authlib.integrations.flask_client import OAuth
from flask import Flask
LINKEDIN_DISCOVERY_URL = (
"https://www.linkedin.com/oauth/.well-known/openid-configuration"
)
oauth = OAuth()
def init_oauth(app: Flask) -> None:
oauth.init_app(app)
oauth.register(
name="linkedin",
client_id=os.getenv("LINKEDIN_CLIENT_ID"),
client_secret=os.getenv("LINKEDIN_CLIENT_SECRET"),
server_metadata_url=LINKEDIN_DISCOVERY_URL,
client_kwargs={"scope": "openid profile email"},
)
+9
View File
@@ -6,6 +6,7 @@ from flask_wtf.csrf import CSRFProtect
from src.auth import db, mailer
from src.auth.models import load_user
from src.auth.oauth import init_oauth
from src.utils import DEVELOPMENT, logger
_csrf: CSRFProtect | None = None
@@ -47,6 +48,8 @@ def init_auth(app: Flask) -> None:
app.register_blueprint(auth_bp)
init_oauth(app)
_csrf = CSRFProtect(app)
if not os.getenv("BREVO_API_KEY"):
@@ -54,3 +57,9 @@ def init_auth(app: Flask) -> None:
"BREVO_API_KEY non défini : les emails d'auth échoueront. "
"Définissez les variables BREVO_* dans .env pour envoyer des emails."
)
if not os.getenv("LINKEDIN_CLIENT_ID"):
logger.warning(
"LINKEDIN_CLIENT_ID non défini : la connexion LinkedIn échouera. "
"Définissez LINKEDIN_CLIENT_ID / LINKEDIN_CLIENT_SECRET dans .env."
)