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