если юзать хочешь апи, то делаешь запрос на api/step/2 - и там проверяешь можно ли выполнить второй шаг, но не через сессии, а если юзер похерил кэш в браузере? ему не даст сделать второй шаг, а первые шаги уже то выполнены были и данные сохраненыв бд, т.е. заставить его пройти опять шаги, состояние которых уже было сохранено