Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from flask import Flask, abort, flash, make_response, render_template, jsonify, request, redirect, session, url_for
- from flask_dance.contrib.google import make_google_blueprint, google
- from flask_mongoengine import MongoEngine, MongoEngineSessionInterface
- app = Flask(__name__, subdomain_matching=True)
- app.config.from_pyfile('flask.cfg')
- db = MongoEngine(app)
- app.session_interface = MongoEngineSessionInterface(db)
- # Auth blueprints
- google_blueprint = make_google_blueprint(
- client_id="*****",
- client_secret="****",
- scope=[
- "https://www.googleapis.com/auth/plus.me",
- "https://www.googleapis.com/auth/userinfo.email",
- ],
- redirect_to='auth_google'
- )
- app.register_blueprint(google_blueprint, url_prefix="/login")
- @app.route('/google')
- def auth_google():
- if not google.authorized:
- return redirect(url_for("google.login"))
- resp = google.get("/oauth2/v2/userinfo")
- assert resp.ok, resp.text
- return "You are {email} on Google".format(email=resp.json()["email"])
- Traceback (most recent call last):
- File "/home/cesar/Development/project/services/frontend_service/venv/lib/python3.7/site-packages/flask/app.py", line 2309, in __call__
- return self.wsgi_app(environ, start_response)
- File "/home/cesar/Development/project/services/frontend_service/venv/lib/python3.7/site-packages/flask/app.py", line 2295, in wsgi_app
- response = self.handle_exception(e)
- File "/home/cesar/Development/project/services/frontend_service/venv/lib/python3.7/site-packages/flask/app.py", line 1741, in handle_exception
- reraise(exc_type, exc_value, tb)
- File "/home/cesar/Development/project/services/frontend_service/venv/lib/python3.7/site-packages/flask/_compat.py", line 35, in reraise
- raise value
- File "/home/cesar/Development/project/services/frontend_service/venv/lib/python3.7/site-packages/flask/app.py", line 2292, in wsgi_app
- response = self.full_dispatch_request()
- File "/home/cesar/Development/project/services/frontend_service/venv/lib/python3.7/site-packages/flask/app.py", line 1815, in full_dispatch_request
- rv = self.handle_user_exception(e)
- File "/home/cesar/Development/project/services/frontend_service/venv/lib/python3.7/site-packages/flask/app.py", line 1718, in handle_user_exception
- reraise(exc_type, exc_value, tb)
- File "/home/cesar/Development/project/services/frontend_service/venv/lib/python3.7/site-packages/flask/_compat.py", line 35, in reraise
- raise value
- File "/home/cesar/Development/project/services/frontend_service/venv/lib/python3.7/site-packages/flask/app.py", line 1813, in full_dispatch_request
- rv = self.dispatch_request()
- File "/home/cesar/Development/project/services/frontend_service/venv/lib/python3.7/site-packages/flask/app.py", line 1799, in dispatch_request
- return self.view_functions[rule.endpoint](**req.view_args)
- File "/home/cesar/Development/project/services/frontend_service/app.py", line 237, in auth_google
- if not google.authorized:
- File "/home/cesar/Development/project/services/frontend_service/venv/lib/python3.7/site-packages/werkzeug/local.py", line 347, in __getattr__
- return getattr(self._get_current_object(), name)
- File "/home/cesar/Development/project/services/frontend_service/venv/lib/python3.7/site-packages/flask_dance/consumer/requests.py", line 129, in authorized
- self.load_token()
- File "/home/cesar/Development/project/services/frontend_service/venv/lib/python3.7/site-packages/flask_dance/consumer/requests.py", line 101, in load_token
- self._client.token = self.token
- File "/home/cesar/Development/project/services/frontend_service/venv/lib/python3.7/site-packages/lazy/lazy.py", line 28, in __get__
- value = self.__func(inst)
- File "/home/cesar/Development/project/services/frontend_service/venv/lib/python3.7/site-packages/flask_dance/consumer/requests.py", line 98, in token
- return self.blueprint.token
- File "/home/cesar/Development/project/services/frontend_service/venv/lib/python3.7/site-packages/flask_dance/consumer/base.py", line 102, in token
- _token["expires_in"] = expires_in.total_seconds()
- File "/home/cesar/Development/project/services/frontend_service/venv/lib/python3.7/site-packages/mongoengine/base/datastructures.py", line 46, in __setitem__
- self._mark_as_changed(key)
- File "/home/cesar/Development/project/services/frontend_service/venv/lib/python3.7/site-packages/mongoengine/base/datastructures.py", line 91, in _mark_as_changed
- if hasattr(self._instance, '_mark_as_changed'):
- ReferenceError: weakly-referenced object no longer exists
- if not google.authorized:
- # app.session_interface = app.session_interface = MongoEngineSessionInterface(db)(db)
Add Comment
Please, Sign In to add comment