Merge pull request #957 from simple-login/feature/add-oauth-hook-check-status-code

Add OAuth hook for checking the status code
This commit is contained in:
Adrià Casajús 2022-05-06 16:16:40 +02:00 committed by GitHub
commit 3ccca2e02e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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,