Я бы предпочел использовать решение для токенов. Если у вас нет реальных пользователей с их собственным именем пользователя и паролем, то создается впечатление, что вы используете конструкцию Basic Auth не так, как предполагалось. Не то чтобы это обязательно неправильно, но не так чисто, ИМО. Это также устраняет необходимость использования пользовательских заголовков, и я думаю, что это делает реализацию с обеих сторон проще и чище. Следующий вопрос, который я хотел бы задать, заключается в том, следует ли вам использовать двухфакторную аутентификацию или вам вообще нужно управлять сеансами.