# Middleware Middleware are pieces of code that are executed every time a request is made to the app. It is used to do pre-validations and, in our case, add global values ​​as props to each frontend render. The accounts middleware is: ## **AuthPropsMiddleware** Provides the frontend with the user's authentication information, if authenticated, and other information necessary for the account module. ```shell class AuthPropsMiddleware: def __init__(self, get_response): self.get_response = get_response # One-time configuration and initialization. def __call__(self, request): if request.user.is_authenticated: try: email_address = models.EmailAddress.objects.get( user=request.user, primary=True ) except models.EmailAddress.DoesNotExist: verified = "" else: verified = email_address.verified share( request, "auth", { "user": { "id": request.user.id, "firstName": request.user.first_name, "lastName": request.user.last_name, "email": request.user.email, "isBusiness": request.user.is_business, "groups": [ group["name"] for group in request.user.groups.all().values("name") ], }, "emailAddress": { "verified": verified, "emailMethod": app_settings.EMAIL_VERIFICATION, }, }, ) else: share( request, "auth", { "user": { "id": "", "firstName": "", "lastName": "", "email": "", "isBusiness": False, "groups": [], }, "emailAddress": { "verified": "", "emailMethod": app_settings.EMAIL_VERIFICATION, }, }, ) response = self.get_response(request) return response ```