"""
schemata for uniform serialization of Auth0 models
"""
import marshmallow
[docs]class Auth0UserSchema(marshmallow.Schema):
"""
serialization for local Auth0UserModel
"""
id = marshmallow.fields.String()
created_on = marshmallow.fields.DateTime()
updated_on = marshmallow.fields.DateTime()
[docs]class Auth0TokenSchema(marshmallow.Schema):
"""
serialization for OAuth2 tokens returned by Auth0
"""
access_token = marshmallow.fields.String()
refresh_token = marshmallow.fields.String()
id_token = marshmallow.fields.String()
scope = marshmallow.fields.String()
expires_in = marshmallow.fields.Integer()
token_type = marshmallow.fields.String()
expires_at = marshmallow.fields.Integer()
userinfo = marshmallow.fields.Dict()
[docs]class Auth0IdentitySchema(marshmallow.Schema):
"""
serialization for local auth0IdentityModel
"""
provider = marshmallow.fields.String()
access_token = marshmallow.fields.String(load_only=True)
expires_in = marshmallow.fields.Integer()
user_id = marshmallow.fields.String()
connection = marshmallow.fields.String()
isSocial = marshmallow.fields.Boolean()
refresh_token = marshmallow.fields.String(load_only=True)
profile_data = marshmallow.fields.Dict(data_key='profileData')
[docs]class Auth0ProfileSchema(marshmallow.Schema):
"""
information to record for an Auth0 identity profile
"""
email = marshmallow.fields.Email()