Source code for fictive.auth0.ext.marshmallow

"""
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()
[docs] class Meta: # pylint: disable=too-few-public-methods """ ignore extraneous fields in the Auth0 data """ unknown = marshmallow.EXCLUDE