1234567891011121314151617181920212223 |
- from datetime import datetime
- from graphql_jwt.settings import jwt_settings
- from store_back.settings import GRAPHQL_JWT
- ## JWT payload for Hasura
- def jwt_payload(user, context=None):
- token = {}
- jwt_datetime = datetime.utcnow() + jwt_settings.JWT_EXPIRATION_DELTA
- jwt_expires = int(jwt_datetime.timestamp())
- token['username'] = str(user.username) # For library compatibility
- token['exp'] = jwt_expires
- token['iat'] = datetime.timestamp(datetime.now())
- token["sub"] = {
- "acl":["anon"],
- }
- if user._id:
- token["sub"]["acl"].append(str(user._id))
- if user.is_superuser:
- token["sub"]["acl"].append("admin")
- token["sub"]["login"] = user.username
- token["sub"]["_id"] = str(user._id)
- return token
|