Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/runtime/sandbox.py", line 1132, in load_module
- raise ImportError('No module named %s' % fullname)
- ImportError: No module named pyasn1.compat.binary
- Google Cloud SDK 171.0.0
- alpha 2017.09.11
- app-engine-python 1.9.60
- beta 2017.09.11
- bq 2.0.25
- core 2017.09.11
- gsutil 4.27
- google-auth==1.1.0
- requests==2.18.4
- requests-toolbelt==0.7.1
- import json
- import webapp2
- import google.auth.transport.requests
- import google.oauth2.id_token
- import requests_toolbelt.adapters.appengine
- class RestHandler(webapp2.RequestHandler):
- def dispatch(self):
- """Middleware for all the routes."""
- # Verify the user is authenticated for each request.
- if not self.is_authorized() and self.request.method != 'OPTIONS':
- self.response.set_status(401)
- self.response.write('Unauthorized')
- else:
- super(RestHandler, self).dispatch()
- def get_claims(self):
- """
- Verify the Firebase credentials on the server side via the
- bearer's token.
- """
- auth_headers = self.request.headers['Authorization']
- id_token = auth_headers.split(' ').pop()
- return google.oauth2.id_token.verify_firebase_token(
- id_token, HTTP_REQUEST)
- def get_user_id(self):
- claims = self.get_claims()
- return claims['sub']
- def is_authorized(self):
- """
- Determines if the user is authorized.
- NOTE: We don't have a server-side session, so we are operating based on
- the user's client token. We are basically verifying that the client
- Firebase token is valid by checking it via a server-side request.
- """
- if 'Authorization' in self.request.headers:
- if self.get_claims():
- return True
- return False
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement