Files
Flask-Discord/flask_discord/client.py
2019-05-07 15:54:44 +05:30

25 lines
902 B
Python

from . import configs, _http
from flask import request, session, redirect
class DiscordOAuth2Session(_http.DiscordOAuth2HttpClient):
def make_session(self, scope=None):
scope = scope or request.args.get("scope", str()).split() or configs.DEFAULT_SCOPES
discord_session = self._make_session(scope=scope)
authorization_url, state = discord_session.authorization_url(configs.AUTHORIZATION_BASE_URL)
session["oauth2_state"] = state
return redirect(authorization_url)
def callback(self):
if request.values.get("error"):
return request.values["error"]
discord = self._make_session(state=session.get("oauth2_state"))
token = discord.fetch_token(
configs.TOKEN_URL,
client_secret=self.client_secret,
authorization_response=request.url
)
session["oauth2_token"] = token