Или вы считаете, что опытный человек с рейтом 50 в час, взявший заказ и выполнивший его за 2 часа равноценен джуну, который стоит 5 в час и выполняющий эту же работу 20 часов? Категорически не согласен. Одно из свойств услуги - имеют индивидуальный характер оказания. Таким образом в конечном итоге трудоемкость задачи будет определятся тем, кто будет выполнять эту работу на основании его знаний и опыта в решении подобных задач.
Ваши формулы нужны в основном чтобы ссать в уши заказчику, когда он спросит "с чего вдруг у вас такая цена получилась?".Цена формируется заказчиком! Ссать в уши - уже никто не сможет!
Каждого кандидата просим назвать все входные параметры, после - оцениваем выгодное предложение. Идея формулы в том, что заранее заказчику не нужно знать сложность, т.к. заказчик всё равно ничего не понимает в сложности работы (в основном), но может посчитать сроки и затраты.
1. Ключ привязывается к клиенту (ClientID, например к подсети или ID-устройства и т.д.). Как доп. защита, на сервере создаётся поведенческий фильтр (на всякий случай), например тот, кто украл ключ решил зайти с той же сети, но ночью.
Сервер попросит пересоздать ключ на основе текущего, а вот тут уже нужен чистый логин и пароль, которого на устройстве нет)
2. Ключ может быть отозван любым другим клиентом (клиент - это ПО) после успешной авторизации или сервером по любому событию. Ключ - это публичный ключ сервера привязанный к конкретному клиенту (НЕ К АККАУНТУ!)
3. Получит ошибку - да. Заново - у клиента уже есть новый хеш (в памяти). Ему нужно переподписать новым и повторно отправить тот же запрос к API.
6. С токеном сессии - уже можно поступать как душе угодно, в зависимости от криптостойкости алгоритма и важности передаваемых данных. Можно хоть каждый запрос его менять (если это необходимо), так называемый chain-token. Можно попросить сервер выдать новый с клиента, а может сервер сказать, что по какой-то причине (не важной для клиента), он просит сменить токен сессии.
Тоже самое - с таймаутами. Но достаточно обычно в 5-10 секунд таймаут ставить для токена между пакетами. И более - для более длинных цепочек обмена без смены.