def authenticate_credentials(payload, request): user_id = payload.get('user_id', '') role = payload.get('role', '') if '' in (user_id, role): msg = _('Invalid payload.') raise exceptions.AuthenticationFailed(msg) if role == 'commerce': v = cache.hget('user:user', user_id) try: obj = json.loads(v) user = User.init_from_dict(obj) except json.JSONDecodeError: return None elif role == 'proxy': try: user = Proxy.objects.get(id=user_id) except Proxy.DoesNotExist: return None else: try: user = Channel.objects.get(id=user_id) except Channel.DoesNotExist: return None return user