Аутентификация пользователя по логину и паролю

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

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

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

Примечание. При загрузке приложения доступна только одна кнопка «Authentication».

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

  1. Нажмите кнопку «Authentication».

При нажатии на кнопку происходит запрос на выполнение аутентификации с сервера мобильной платформы. При успешном выполнении аутентификации возвращается токен.

Кнопка «Authentication» становится недоступной, а «Unauthentication» доступной.

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

См. также:

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