Класс 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) Параметры:
|
auth(withNewPassword:completion:) | Аутентификация текущего пользователя на сервере со сменой пароля.
После выполнения метода будут получены новые access- и refresh-токены
пользователя. Access-токен используется в каждом запросе к серверу.
Refresh-токен используется для обновления access-токена при необходимости.
Если пользователь не является текущим в момент вызова метода,
вернет ошибку.
func auth(withNewPassword newPassword: String, completion: @escaping (AuthWithNewPasswordResult) -> Void) Параметры:
|
copy() | Получение экземпляра класса-строителя для копирования FMPUser.
Возвращает экземпляр класса-строителя FMPUser.Builder.
func copy() -> FMPUser.Builder |
refreshToken(completion:) | Обновление access-токена пользователя.
func refreshToken(completion: @escaping (RefreshTokenResult) -> Void) Параметры:
|
revoke() | Отмена аутентификации текущего пользователя. Пользователь перестает
быть текущим, данные об access- и refresh-токенах удаляются. Если
пользователь не является текущим в момент вызова метода, то метод
вернёт ошибку.
func revoke() throws |
Аутентификация пользователя:
// Построим экземпляр класса 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()
См. также: