Advertisement
Guest User

Untitled

a guest
Sep 19th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.85 KB | None | 0 0
  1. File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/runtime/sandbox.py", line 1132, in load_module
  2. raise ImportError('No module named %s' % fullname)
  3. ImportError: No module named pyasn1.compat.binary
  4.  
  5. Google Cloud SDK 171.0.0
  6. alpha 2017.09.11
  7. app-engine-python 1.9.60
  8. beta 2017.09.11
  9. bq 2.0.25
  10. core 2017.09.11
  11. gsutil 4.27
  12.  
  13. google-auth==1.1.0
  14. requests==2.18.4
  15. requests-toolbelt==0.7.1
  16.  
  17. import json
  18. import webapp2
  19. import google.auth.transport.requests
  20. import google.oauth2.id_token
  21. import requests_toolbelt.adapters.appengine
  22.  
  23. class RestHandler(webapp2.RequestHandler):
  24. def dispatch(self):
  25. """Middleware for all the routes."""
  26. # Verify the user is authenticated for each request.
  27. if not self.is_authorized() and self.request.method != 'OPTIONS':
  28. self.response.set_status(401)
  29. self.response.write('Unauthorized')
  30. else:
  31. super(RestHandler, self).dispatch()
  32.  
  33. def get_claims(self):
  34. """
  35. Verify the Firebase credentials on the server side via the
  36. bearer's token.
  37. """
  38. auth_headers = self.request.headers['Authorization']
  39. id_token = auth_headers.split(' ').pop()
  40. return google.oauth2.id_token.verify_firebase_token(
  41. id_token, HTTP_REQUEST)
  42.  
  43. def get_user_id(self):
  44. claims = self.get_claims()
  45. return claims['sub']
  46.  
  47. def is_authorized(self):
  48. """
  49. Determines if the user is authorized.
  50. NOTE: We don't have a server-side session, so we are operating based on
  51. the user's client token. We are basically verifying that the client
  52. Firebase token is valid by checking it via a server-side request.
  53. """
  54. if 'Authorization' in self.request.headers:
  55. if self.get_claims():
  56. return True
  57.  
  58. return False
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement