mirror of
https://github.com/yawaflua/Flask-Discord.git
synced 2025-12-10 12:29:30 +02:00
✔ Properly raise an Exception when user cancels the flow while OAuth grant
This commit is contained in:
@@ -58,3 +58,6 @@ Exceptions
|
||||
|
||||
.. autoclass:: flask_discord.Unauthorized
|
||||
:members:
|
||||
|
||||
.. autoclass:: flask_discord.AccessDenied
|
||||
:members:
|
||||
|
||||
@@ -2,7 +2,7 @@ import jwt
|
||||
import typing
|
||||
import discord
|
||||
|
||||
from . import configs, _http, models, utils
|
||||
from . import configs, _http, models, utils, exceptions
|
||||
|
||||
from oauthlib.common import add_params_to_uri
|
||||
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.
|
||||
|
||||
"""
|
||||
if request.values.get("error"):
|
||||
return request.values["error"]
|
||||
error = request.values.get("error")
|
||||
if error:
|
||||
if error == "access_denied":
|
||||
raise exceptions.AccessDenied()
|
||||
raise exceptions.HttpException(error)
|
||||
|
||||
state = self.__get_state()
|
||||
token = self._fetch_token(state)
|
||||
self.save_authorization_token(token)
|
||||
|
||||
@@ -42,3 +42,7 @@ class RateLimited(HttpException):
|
||||
|
||||
class Unauthorized(HttpException):
|
||||
"""A HTTP Exception raised when user is not authorized."""
|
||||
|
||||
|
||||
class AccessDenied(HttpException):
|
||||
"""Exception raised when user cancels OAuth authorization grant."""
|
||||
|
||||
Reference in New Issue
Block a user