Для выполнения аутентификации на сервере мобильной платформы со сменой пароля создайте приложение «HHFWAuthWithChangePassword», в котором используются методы фреймворка:
Имя метода | Краткое описание |
initWithCredentials (_: host: environment: project: device:) | Метод выполняет инициализацию фреймворка. |
auth (_: password: newPassword: confirmPassword: handler:) | Метод выполняет аутентификацию пользователя со сменой пароля. |
Приложение «HHFWAuthWithChangePassword» состоит из одного экрана, текстовых полей «UITextField», текстового представления «UITextView» и кнопки «UIButton»:
«Change password and auth». Аутентификация пользователя со сменой пароля.
Для выполнения примера:
Введите текущие логин и пароль в текстовые поля «Login», «Password»;
Введите новый пароль в поле «New password», затем подтвердите его в поле «Confirm new password»;
Нажмите кнопку «Change password and auth».
При нажатии на кнопку происходит запрос на выполнение аутентификации на сервере мобильной платформы со сменой пароля. При успешном выполнении запроса возвращается новый токен.
Код приложения:
import UIKit
class ViewController: UIViewController {
// Определим выходные переменные
@IBOutlet weak var loginTextField: UITextField!
@IBOutlet weak var passwordTextField: UITextField!
@IBOutlet weak var newPasswordTextField: UITextField!
@IBOutlet weak var confirmPasswordTextField: UITextField!
@IBOutlet weak var authButton: UIButton!
@IBOutlet weak var resultTextView: UITextView!
// Переопределим метод
override func viewDidLoad() {
super.viewDidLoad()
self.authButton.isEnabled = true
self.initializeFramework()
}
// Зададим метод, который будет выполняться при нажатии на кнопку
@IBAction func authWithChangePassword(_ sender: UIButton) {
self.authButton.isEnabled = false
self.resultTextView.text = "Changing password"
self.authWithChangePassword() { (jsonResult) in
self.authButton.isEnabled = true
self.resultTextView.text = String(format: "%@", jsonResult)
}
}
// Инициализируем фреймворк
private func initializeFramework() {
let apiVersion: String = "v1"
let host: String = "http://testmasterfmp.fsight.cloud/"
let environment: String = "DocumentationExampleEnv"
let project: String = "DocumentationExampleProj"
let device: String = (UIDevice.current.identifierForVendor?.uuidString)!
HHFWController.sharedInstance().initWithCredentials(
apiVersion,
host: host,
environment: environment,
project: project,
device: device
)
}
// Выполним аутентификацию
private func authWithChangePassword(completion: @escaping (NSDictionary)->()) {
let username: String = self.loginTextField.text ?? ""
let password: String = self.passwordTextField.text ?? ""
let newPassword: String = self.newPasswordTextField.text ?? ""
let confirmPassword: String = self.confirmPasswordTextField.text ?? ""
HHFWController.sharedInstance().auth(username, password: password, newPassword: newPassword, confirmPassword: confirmPassword) { (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")
}
}
}
}
См. также:
Примеры аутентификации на сервере мобильной платформы | Аутентификация пользователя по логину и паролю