Звучит так, как будто вы объединяете, по крайней мере, две проблемы.
Первая проблема - аутентификация: вам нужно определить, является ли пользователь тем, кем они себя называют.Для аутентификации вы можете сделать базовую авторизацию.Вы также можете использовать клиентские сертификаты, хотя, вероятно, это не то, что вам нужно.
Второе - управление сеансами. Во-первых, вы можете выполнять базовую аутентификацию для каждого запроса страницы и сохранять состояние сеанса в базе данных., но вы правы в том, что не можете выйти из системы, поскольку браузер будет кэшировать учетные данные.
Возможно, вы захотите рассмотреть страницу входа, которая требует базовой аутентификации и запускает файл cookie для сеанса.управление.Все остальные страницы не требуют базовой авторизации, но дают 401 несанкционированный, если cookie не присутствует.Или вы могли бы перенаправить.Клиентский код iOS должен знать, чтобы сначала вызвать страницу входа, чтобы получить cookie, а затем использовать его после этого.Выход из системы - это удаление файла cookie .. хммм, но браузер все равно будет кэшировать базовые учетные данные аутентификации.
Я думаю, что единственный способ получить то, что вы хотите, - это иметь форму, основанную на форме.авторизация для ваших веб-пользователей (чтобы они могли выходить из системы и входить как кто-либо другой), а также система на основе базовой аутентификации для пользователей iOS.В результате обоих механизмов аутентификации верните cookie, который должен использоваться для всех остальных страниц.