FMPUser

Описание

Класс FMPUser предназначен для описания пользователя.

class FMPUser

Свойства

Свойство Описание

login

Логин пользователя.
var login: String { get }

password

Пароль пользователя.
var password: String { get }

isAuthenticated

Аутентификация пользователя на сервере. Определяется по наличию токена аутентификации для пользователя. Если true, то пользователь аутентифицирован на сервере. Если false, то пользователь не аутентифицирован на сервере или не является текущим.
var isAuthenticated: Bool { get }

isCurrent

Определение данных пользователя, хранящихся в приватном контексте объекта FMP. Если true, то пользователь является текущим. Если false, то пользователь не является текущим.
var isCurrent: Bool { get }

Методы

Метод Описание
auth(completion:) Аутентификация пользователя. После выполнения метода будет получены access- и refresh-токены пользователя. Access-токен используется в каждом запросе к серверу. Refresh-токен используется для обновления access-токена при необходимости. При успешной аутентификации пользователь становится текущим.
func auth(completion: @escaping (AuthResult) -> Void)

Параметры:

  • completion. Замыкающее выражение, содержащее результат выполнения метода.

refreshToken(completion:) Обновление access-токена пользователя.
func refreshToken(completion: @escaping (RefreshTokenResult) -> Void)

Параметры:

  • completion. Замыкающее выражение, содержащее результат выполнения метода.

auth(withNewPassword:completion:) Аутентификация текущего пользователя на сервере со сменой пароля. После выполнения метода будут получены новые access- и refresh-токены пользователя. Access-токен используется в каждом запросе к серверу. Refresh-токен используется для обновления access-токена при необходимости. Если пользователь не является текущим в момент вызова метода, вернет ошибку.
func auth(withNewPassword newPassword: String, completion: @escaping (AuthWithNewPasswordResult) -> Void)

Параметры:

  • newPassword. Новый пароль пользователя;

  • completion. Замыкающее выражение, содержащее результат выполнения метода.

revoke() Отмена аутентификации текущего пользователя. Пользователь перестает быть текущим, данные об access- и refresh-токенах удаляются. Если пользователь не является текущим в момент вызова метода, то метод вернёт ошибку.
func revoke() throws
copy() Получение экземпляра класса-строителя для копирования FMPUser. Возвращает экземпляр класса-строителя FMPUser.Builder.
func copy() -> FMPUser.Builder

Примеры

Аутентификация пользователя:

// Построим экземпляр класса FMPUser
let user: FMPUser = fmp.user
    .login("login")
    .password("password")
    .build()
 
// Проведем аутентификацию пользователя на сервере
user.auth { (result) in
    switch result {
    case .success(_):
    // Успешная аутентификация
    case .failure(let error):
        // Выведем код и описание ошибки
        print((error as? FMPError)?.code, (error as? FMPError)?.description)
    }
}

Обновление токена пользователя:

// Построим экземпляр класса FMPUser
let user: FMPUser = fmp.user
    .login("login")
    .password("password")
    .build()
 
// Сменим пароль пользователя и проведем аутентификацию пользователя на сервере с новым паролем
user.refreshToken { (result) in
    switch result {
    case .success(_):
    // Успешное обновление токенов пользователя
    case .failure(let error):
        // Выведем код и описание ошибки
        print((error as? FMPError)?.code, (error as? FMPError)?.description)
    }
}

Смена пароля пользователя:

// Построим экземпляр класса FMPUser
let user: FMPUser = fmp.user
    .login("login")
    .password("password")
    .build()
  
// Сменим пароль пользователя и проведем аутентификацию пользователя на сервере с новым паролем
user.auth(withNewPassword: "newPassword") { (result) in
    switch result {
    case .success(_):
    // Успешная смена пароля
    case .failure(let error):
        // Выведем код и описание ошибки
        print((error as? FMPError)?.code, (error as? FMPError)?.description)
    }
}

Отмена аутентификации пользователя:

// Построим экземпляр класса FMPUser
let user: FMPUser = fmp.user
    .login("login")
    .password("password")
    .build()
  
// Отменим аутентификацию пользователя на сервере
do {
    try user.revoke()
} catch let error {
    // Выведем описание ошибки
    print((error as? FMPError)?.description)
}

Копирование экземпляра класса FMPUser:

// Построим экземпляр класса FMPUser
let user: FMPUser = fmp.user
    .login("login")
    .password("password")
    .build()
 
// Скопируем экземпляр класса FMPUser
let userCopy: FMPUser = user.copy().build()

См. также:

Фреймворк FMPKit | Классы