utils.py 780 B

1234567891011121314151617181920212223
  1. from datetime import datetime
  2. from graphql_jwt.settings import jwt_settings
  3. from store_back.settings import GRAPHQL_JWT
  4. ## JWT payload for Hasura
  5. def jwt_payload(user, context=None):
  6. token = {}
  7. jwt_datetime = datetime.utcnow() + jwt_settings.JWT_EXPIRATION_DELTA
  8. jwt_expires = int(jwt_datetime.timestamp())
  9. token['username'] = str(user.username) # For library compatibility
  10. token['exp'] = jwt_expires
  11. token['iat'] = datetime.timestamp(datetime.now())
  12. token["sub"] = {
  13. "acl":["anon"],
  14. }
  15. if user._id:
  16. token["sub"]["acl"].append(str(user._id))
  17. if user.is_superuser:
  18. token["sub"]["acl"].append("admin")
  19. token["sub"]["login"] = user.username
  20. token["sub"]["_id"] = str(user._id)
  21. return token