Процедура авторизации пользователя

Итак ниже приведена вариация базы данных пользователей и реализация авторизации пользователя по паролю.

//
// proSwift.ru
//

struct User {

    let login: String
    let password: String
    
    static func login(login:String, password: String) -> User? {
        if let user = database[login] {
            if user.password == password {
                return user
            }
        }
        return nil
    }
    
    static let database: Dictionary<String, User> = {
        
        var theDatabase = Dictionary<String, User>()
        for user in [
        User(login: "user1", password: "pass1"),
            User(login: "user2", password: "pass2"),
            User(login: "user3", password: "pass3"),
            User(login: "user4", password: "pass4"),
            ] {
                theDatabase[user.login] = user
        }
       return theDatabase
    }()
    
    
}

База данных — это словарь, в котором ключи — это имя пользователя login, а значения — экземпляры структуры User.

Метод login  — метод типа ( отмечен ключевым словом static) — т.е. он принадлежит всей структуре, а не конкретному экземпляру. Но этот метод возвращает конкретный экземпляр пользователя, который ввел верно свой логин и пароль.

Где-то далее в коде контроллере пользователь будет реализован следующим образом:

//
// proSwift.ru
//

var loggedInUser: User? 
 
func login() {
    loggedInUser = User.login(//здесь строка с логином, password: // здесь строка с паролем)
}

 

Метки:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.