Как управлять контролем доступа при входе - PullRequest
0 голосов
/ 15 мая 2019

Я искал контроль, что вид пользователя может видеть в моем приложении, это научный проект.Я использую Swift и Firebase Authentication.У меня есть два типа пользователей: модель и клиент.В моем приложении у меня есть некоторые представления для модели и другие для клиента.Я хочу, чтобы после входа в приложение в приложении отображались только представления для их пользователей.Я не знаю, как проверить, является ли пользователь, который пытается войти, моделью или клиентом.

@IBAction func signInTapped(_ sender: UIButton) {

        if validateFields(){

            Auth.auth().signIn(withEmail: emailTxt.text!, password: passTxt.text!, completion:{
                (user, error) in
                if let u = user {
                    //User is found
                }else{
                    //Error
                }
            })
        }
    }

Я знаю, что код должен быть там, где находится комментарий "Пользователь найден"но я не знаю, нужно ли мне что-то изменить в консоли Firebase

Ответы [ 2 ]

0 голосов
/ 15 мая 2019

Вы можете использовать собственные претензии. Вы устанавливаете их с помощью Admin SDK

// Javascript
admin.auth().setCustomUserClaims(uid, {model: true}).then(() => {
    // The new custom claims will propagate to the user's ID token the
    // next time a new one is issued.
});

Тогда в клиентском SDK просто прочитайте претензию.

user.getIDTokenResult(completion: { (result, error) in
  guard let model = result?.claims?["model"] as? NSNumber else {
    // Something
  }
  if model.boolValue {
    // Show something else
  } else {
    // Something else again
  }
})

Бесстыдно скопировано с Документы Firebase

0 голосов
/ 15 мая 2019

Создайте базу данных Firebase или Firestore для вашего проекта. Теперь, когда вы аутентифицируете пользователя, вы также должны создать в своей базе данных объект userobject. В этом объекте вы можете создать поле для хранения информации о том, является ли ваш пользователь моделью или клиентом. Теперь, когда пользователь выполнил вход в систему, вы можете загрузить этот пользовательский объект из базы данных, проверить, является ли пользователь моделью или клиентом, и отправить пользователю их соответствующие представления.

...