Управление пользователем
Перед открытием чата, в SDK обязательно должен быть установлен пользователь, для которого нужно открыть чат. Также может возникнуть необходимость этого пользователя удалить, например, при сбросе пользователем регистрации в приложении
Для установки пользователя и управления им, в SDK есть несколько методов:
Установка пользователя
Метод для установки пользователя чата в ChatCenterUI SDK:
func authorize(user: ChatUser, auth: ChatAuth = ChatAuth())
Вызывается до открытия экрана чата, в момент когда в родительском приложении становится известен пользователь (например, после ввода пин кода в банковском приложении)
Параметры:
user
: ОбъектChatUser
, содержащий информацию о пользователе. (обязательный параметр)auth
: Настройки авторизации (если используется кастомный способ, это обговаривается при интеграции).
Пример использования:
// Создание модели пользователя
let chatUser = ChatUser(identifier: "user_uuid",
name: "Иван Иванов",
data: ["email": "ivan.ivanov@example.ru"])
// Установка пользователя в СДК
chatCenterSDK.authorize(user: chatUser)
Логаут пользователя
В случае сброса пользователем регистрации в приложении, необходимо также вызвать логаут в SDK (например, чтобы отписать его от уведомлений о новых сообщениях в чате). Для этого нужно вызвать метод:
func logout() throws
Выполняет выход пользователя из SDK, очищая данные текущей сессии. После вызова этого метода для открытия чата потребуется повторная авторизация (через authorize).
Выбрасывает: Ошибки, если произошла проблема при логауте.
Пример использования:
do {
try chatCenterSDK?.logout()
// Пользователь успешно вышел
} catch {
print("Ошибка при выходе: \(error)")
}
Удаление пользователя
В случае необходимости локального удаления пользователя (например, пользователь выходит из авторизацинной зоны на экран ввода пин кода) можно использовать метод:
func deauthorizeUser()
Он удаляет текущего активного пользователя и закрывает подключения к серверу. В этом случае из SDK не будет обращений к серверу до следующей авторизации. Перед повторным открытием чата необходимо авторизовать нового пользователя через метод authorize
.
Пример использования:
chatCenterSDK?.deauthorizeUser()