Log details obfuscated to not leak info
This commit is contained in:
@@ -10,12 +10,15 @@ from starlette.requests import Request
|
||||
|
||||
from backend.app.api.dependencies import get_current_user
|
||||
from backend.app.services.mastodon_oauth import finish_authorization, start_authorization
|
||||
from backend.app.core.errors import public_error, redacted_error, request_id
|
||||
import logging
|
||||
|
||||
router = APIRouter()
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@router.get('/oauth/start')
|
||||
def oauth_start(instance: str = 'mastodon.social', user: dict = Depends(get_current_user)):
|
||||
def oauth_start(request: Request, instance: str = 'mastodon.social', user: dict = Depends(get_current_user)):
|
||||
try:
|
||||
authorization_url = start_authorization(user['id'], instance)
|
||||
except HTTPError as error:
|
||||
@@ -27,7 +30,8 @@ def oauth_start(instance: str = 'mastodon.social', user: dict = Depends(get_curr
|
||||
headers=headers,
|
||||
) from error
|
||||
except Exception as error:
|
||||
raise HTTPException(status_code=502, detail=f'Could not register with Mastodon: {error}') from error
|
||||
logger.error('Mastodon registration failed request_id=%s error=%s', request_id(request), redacted_error(error))
|
||||
raise HTTPException(status_code=502, detail=public_error(request, 'Could not register with Mastodon.')) from error
|
||||
return {'authorization_url': authorization_url}
|
||||
|
||||
|
||||
@@ -38,5 +42,6 @@ def oauth_callback(request: Request, code: str | None = None, state: str | None
|
||||
try:
|
||||
finish_authorization(code, state)
|
||||
except Exception as callback_error:
|
||||
return RedirectResponse(f'/profile?mastodon_error={quote(str(callback_error))}')
|
||||
logger.error('Mastodon callback failed request_id=%s error=%s', request_id(request), redacted_error(callback_error))
|
||||
return RedirectResponse(f'/profile?mastodon_error={quote(public_error(request, "Could not complete Mastodon authorization."))}')
|
||||
return RedirectResponse('/profile?mastodon=connected')
|
||||
Reference in New Issue
Block a user