FMPUser

Описание

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

class FMPUser

Свойства

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

isAuthenticated

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

isCurrent

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

login

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

password

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

Методы

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

Параметры:

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

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

Параметры:

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

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

copy() Получение экземпляра класса-строителя для копирования FMPUser. Возвращает экземпляр класса-строителя FMPUser.Builder.
func copy() -> FMPUser.Builder
refreshToken(completion:) Обновление access-токена пользователя.
func refreshToken(completion: @escaping (RefreshTokenResult) -> Void)

Параметры:

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

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

Псевдонимы типов

Псевдоним типа Описание
AuthResult Результат запроса аутентификации пользователя. Используется методом auth(completion:).
typealias AuthResult = Result<Bool, Error>
AuthWithNewPasswordResult Результат запроса аутентификации текущего пользователя на сервере со сменой пароля. Используется методом auth(withNewPassword:completion:).
typealias AuthWithNewPasswordResult = Result<Bool, Error>
RefreshTokenResult Результат запроса обновления access-токена пользователя. Используется методом refreshToken(completion:).
typealias RefreshTokenResult = Result<Bool, Error>

Примеры

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

// Построим экземпляр класса 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 | Классы