Аутентификация пользователя со сменой пароля

Для выполнения аутентификации на сервере мобильной платформы со сменой пароля создайте приложение «HHFWAuthWithChangePassword», в котором используются методы фреймворка:

Имя метода Краткое описание
initWithCredentials (_: host: environment: project: device:) Метод выполняет инициализацию фреймворка.
auth (_: password: newPassword: confirmPassword: handler:) Метод выполняет аутентификацию пользователя со сменой пароля.

Приложение «HHFWAuthWithChangePassword» состоит из одного экрана, текстовых полей «UITextField», текстового представления «UITextView» и кнопки «UIButton»:

Для выполнения примера:

  1. Введите текущие логин и пароль в текстовые поля «Login», «Password»;

  2. Введите новый пароль в поле «New password», затем подтвердите его в поле «Confirm new password»;

  3. Нажмите кнопку «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")
            }
        }
    }
}

См. также:

Примеры аутентификации на сервере мобильной платформы | Аутентификация пользователя по логину и паролю