Для выполнения аутентификации на сервере мобильной платформы создайте приложение «HHFWAuth», в котором используются методы фреймворка:
Имя метода | Краткое описание |
initWithCredentials (_: host: environment: project: device:) | Метод выполняет инициализацию фреймворка. |
auth (_: password:) | Метод выполняет аутентификацию пользователя по логину и паролю. |
unAuth () | Метод отменяет выполненную аутентификацию пользователя. |
Приложение «HHFWAuth» состоит из одного экрана, текстового представления «UITextView» и кнопок «UIButton»:
«Authentication». Выполнение аутентификации;
«Unauthentication». Отмена аутентификации.
Примечание. При загрузке приложения доступна только одна кнопка «Authentication».
Для выполнения примера:
Нажмите кнопку «Authentication».
При нажатии на кнопку происходит запрос на выполнение аутентификации с сервера мобильной платформы. При успешном выполнении аутентификации возвращается токен.
Кнопка «Authentication» становится недоступной, а «Unauthentication» доступной.
Нажмите кнопку «Unauthentication».
В результате аутентификация будет отменена. Кнопка «Unauthentication» становится недоступной, а «Authentication» доступной.
Код приложения:
import UIKit
class ViewController: UIViewController {
// Определим выходные переменные
@IBOutlet weak var resultTextView: UITextView!
@IBOutlet weak var authButton: UIButton!
@IBOutlet weak var unAuthButton: UIButton!
// Переопределим метод
override func viewDidLoad() {
super.viewDidLoad()
self.activateAuth()
self.initializeFramework()
}
// Зададим метод, который будет выполняться при нажатии на кнопку
@IBAction func authPressed(_ sender: UIButton) {
self.auth() { (jsonResult) in
self.activateUnAuth()
self.resultTextView.text = String(format: "%@", jsonResult)
}
}
@IBAction func unAuthPressed(_ sender: UIButton) {
self.unAuth()
self.activateAuth()
self.resultTextView.text = "Unauth success"
}
// Выполним инициализацию фреймворка
private func initializeFramework() {
let apiVersion: String = "v1"
let host: String = "http://testmasterfmp.fsight.cloud/"
let environment: String = "Leonid_environment"
let project: String = "Leonid_project"
let device: String = (UIDevice.current.identifierForVendor?.uuidString)!
HHFWController.sharedInstance().initWithCredentials(
apiVersion,
host: host,
environment: environment,
project: project,
device: device
)
}
// Выполним аутентификацию
private func auth(completion: @escaping (NSDictionary)->()) {
let username: String = "test"
let password: String = "test123"
HHFWController.sharedInstance().auth(username, password: password){ (jsonResult) in
if let jsonDict = jsonResult as? NSDictionary,
let status = jsonDict["status"] as? String, status == "ok" {
print("Auth success")
completion(jsonDict)
} else {
print("Auth error")
}
}
}
private func unAuth() {
HHFWController.sharedInstance().unAuth()
}
// Зададим методы для отображения элементов пользовательского интерфейса приложения
private func activateUnAuth() {
self.authButton.isEnabled = false
self.unAuthButton.isEnabled = true
}
private func activateAuth() {
self.authButton.isEnabled = true
self.unAuthButton.isEnabled = false
}
}
См. также:
Примеры аутентификации на сервере мобильной платформы | Аутентификация пользователя со сменой пароля