From 1889f3248ae83cc773a5443c6ba0f62834d73b7b Mon Sep 17 00:00:00 2001 From: Nate the great Date: Thu, 29 Mar 2018 04:52:29 -0400 Subject: Oauth (#45) * Creating a OAUTH login for the site. We still need to have a way to fill in credentials however. Signed-off-by: Zwork101 * How ya like me now Travis? Signed-off-by: Zwork101 * Fix slight error in database insertion * Revert "Fix slight error in database insertion" (wrong branch) This reverts commit 9ac6cbb * Don't have snekchek working, but I'll try again. Signed-off-by: Zwork101 * Please enter the commit message for your changes. Lines starting * Adding Oauth2 login to site. * Add prefix * Add prefix * This never happened * Flipping Travis I still can't get snekchek to work locally. * Added a whole bunch of stuff, ready to be used. Signed-off-by: Zwork101 * Making sessions more secure, and future safe. Signed-off-by: Zwork101 * Adding some quick stuff Signed-off-by: Zwork101 * Appease the flake8 gods Signed-off-by: Zwork101 * Appease the flake8 gods Signed-off-by: Zwork101 * Whoops Signed-off-by: Zwork101 * Add comments, fix user_data function. Signed-off-by: Zwork101 * Whooops, forgot to flake :/ Signed-off-by: Zwork101 * Make it look nicer, thanks Aperture. Signed-off-by: Zwork101 * Fixing login issues and added button * Add a OauthMixin to allow for easy data access. Clean stuff up. Signed-off-by: Zwork101 * Fix a test, and use self.assertEqual rather then self.assertEquals! Signed-off-by: Zwork101 * Please don't ask how that happened. Signed-off-by: Zwork101 * Added some tests, moved a bunch of stuff around. Mainly cleaned stuff up. Signed-off-by: Zwork101 * Add a ton of tests, try to please the coverall gods :D, moved some code into a function for testing. Signed-off-by: Zwork101 * Just some stupid stuff I missed. Signed-off-by: Zwork101 * Fix an issue with the test, and add docs Signed-off-by: Zwork101 * Remove pointless function. (join_user) Signed-off-by: Zwork101 * Fix test consistency --- pysite/route_manager.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'pysite/route_manager.py') diff --git a/pysite/route_manager.py b/pysite/route_manager.py index 72517a3c..9ecd3ced 100644 --- a/pysite/route_manager.py +++ b/pysite/route_manager.py @@ -5,10 +5,15 @@ import logging import os from flask import Blueprint, Flask +from flask_dance.contrib.discord import make_discord_blueprint from flask_sockets import Sockets from pysite.base_route import APIView, BaseView, ErrorView, RouteView +from pysite.constants import ( + DISCORD_OAUTH_ID, DISCORD_OAUTH_SCOPE, DISCORD_OAUTH_SECRET, DISCORD_OAUTH_REDIRECT, DISCORD_OAUTH_AUTHORIZED +) from pysite.database import RethinkDB +from pysite.oauth import OauthBackend from pysite.websockets import WS TEMPLATES_PATH = "../templates" @@ -31,6 +36,21 @@ class RouteManager: self.app.before_request(self.db.before_request) self.app.teardown_request(self.db.teardown_request) + # Load the oauth blueprint + self.oauth_backend = OauthBackend(self) + self.oauth_blueprint = make_discord_blueprint( + DISCORD_OAUTH_ID, + DISCORD_OAUTH_SECRET, + DISCORD_OAUTH_SCOPE, + '/', + login_url=DISCORD_OAUTH_REDIRECT, + authorized_url=DISCORD_OAUTH_AUTHORIZED, + backend=self.oauth_backend + ) + self.log.debug(f"Loading Blueprint: {self.oauth_blueprint.name}") + self.app.register_blueprint(self.oauth_blueprint) + self.log.debug("") + # Load the main blueprint self.main_blueprint = Blueprint("main", __name__) self.log.debug(f"Loading Blueprint: {self.main_blueprint.name}") -- cgit v1.2.3