Add OAuth hook for checking the status code

This commit is contained in:
Carlos Quintana 2022-05-06 14:41:52 +02:00
parent a92981c52d
commit c95bfb80a2
No known key found for this signature in database
GPG Key ID: 15E73DCC410679F8
1 changed files with 10 additions and 0 deletions

View File

@ -1,3 +1,4 @@
import requests
from flask import request, session, redirect, flash, url_for
from flask_limiter.util import get_remote_address
from flask_login import current_user
@ -78,6 +79,15 @@ def proton_callback():
state=session["oauth_state"],
redirect_uri=_redirect_uri,
)
def check_status_code(response: requests.Response) -> requests.Response:
if response.status_code != 200:
raise Exception(
f"Bad Proton API response [status={response.status_code}]: {response.json()}"
)
return response
proton.register_compliance_hook("access_token_response", check_status_code)
token = proton.fetch_token(
_token_url,
client_secret=PROTON_CLIENT_SECRET,