✔ Properly raise an Exception when user cancels the flow while OAuth grant

This commit is contained in:
thec0sm0s
2020-08-10 11:32:52 +05:30
parent 369127092b
commit 8b423e216e
3 changed files with 14 additions and 3 deletions

View File

@@ -58,3 +58,6 @@ Exceptions
.. autoclass:: flask_discord.Unauthorized .. autoclass:: flask_discord.Unauthorized
:members: :members:
.. autoclass:: flask_discord.AccessDenied
:members:

View File

@@ -2,7 +2,7 @@ import jwt
import typing import typing
import discord import discord
from . import configs, _http, models, utils from . import configs, _http, models, utils, exceptions
from oauthlib.common import add_params_to_uri from oauthlib.common import add_params_to_uri
from flask import request, session, redirect, current_app from flask import request, session, redirect, current_app
@@ -144,8 +144,12 @@ class DiscordOAuth2Session(_http.DiscordOAuth2HttpClient):
`session <http://flask.pocoo.org/docs/1.0/api/#flask.session>`_ object. `session <http://flask.pocoo.org/docs/1.0/api/#flask.session>`_ object.
""" """
if request.values.get("error"): error = request.values.get("error")
return request.values["error"] if error:
if error == "access_denied":
raise exceptions.AccessDenied()
raise exceptions.HttpException(error)
state = self.__get_state() state = self.__get_state()
token = self._fetch_token(state) token = self._fetch_token(state)
self.save_authorization_token(token) self.save_authorization_token(token)

View File

@@ -42,3 +42,7 @@ class RateLimited(HttpException):
class Unauthorized(HttpException): class Unauthorized(HttpException):
"""A HTTP Exception raised when user is not authorized.""" """A HTTP Exception raised when user is not authorized."""
class AccessDenied(HttpException):
"""Exception raised when user cancels OAuth authorization grant."""