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

Я перенес свое приложение parse.com в приложение Heroku с MongoDB — https://github.com/ParsePlatform/parse-server-example (Heroku, похоже, является наиболее популярным способом перехода от прекращаемой службы).

Я могу общаться с REST API и писать, используя ключ приложения, установленный в настройках Heroku. Теперь я хочу заблокировать доступ к API, чтобы только вошедшие в систему пользователи могли вызывать API (настроенные как пользователи, хранящиеся в базе данных, а не oAuth через Twitter, Facebook и т. д.).

Это можно было бы сделать следующим образом в Parse.com (в приложении) «Настройки приложения»> «Пользователи»> «Разрешить анонимных пользователей».


person Mr T    schedule 08.04.2016    source источник
comment
Вы хотите сказать, что не хотите, чтобы анонимные пользователи могли звонить на сервер так же, как и те, кто авторизовался через Facebook или Twitter?   -  person Dan Levy    schedule 09.04.2016
comment
Я говорю, что хочу использовать пользователей в БД, чтобы мне не приходилось полагаться на Facebook или Twitter OAuth.   -  person Mr T    schedule 10.04.2016
comment
Итак, вы хотите просто создать страницу регистрации и входа с именем пользователя и паролем?   -  person Dan Levy    schedule 10.04.2016
comment
Я уже создал страницу входа в систему, я просто хочу иметь возможность управлять вызовами БД, используя имя пользователя и пароль, в соответствии с тем, как это работало. Даже когда я отключу разрешение анонимных пользователей, я все еще могу запрашивать и изменять базу данных с помощью анонимных вызовов API.   -  person Mr T    schedule 10.04.2016
comment
Раньше вы разрешали большему количеству пользователей, а теперь вам не нужна эта функция? Когда пользователь входит в систему, создается PFUser.CurrentUser(). Я бы попытался разрешить человеку войти в ваше приложение только в том случае, если PFUser.CurrentUser() != nil. Это помогает или проблема в чем-то другом?   -  person Dan Levy    schedule 10.04.2016
comment
Не понимаю, что вы имеете в виду. Итак, теперь я полностью автономен с новой установкой сервера синтаксического анализа на Heroku и базой данных MongoLab. У меня запущена Parse Dashboard для управления данными, и я надеялся, что настройки (но настроек панели пока нет). Итак, я хочу иметь возможность заблокировать доступ к API только для зарегистрированных пользователей, что ранее было сделано, как я описал выше. Имеет ли это смысл?   -  person Mr T    schedule 13.04.2016
comment
Правильно, поэтому, когда пользователь входит в ваше приложение, PFUser.CurrentUser() != nil. Если вы не хотите, чтобы люди, которые не вошли в ваше приложение, совершали звонки, проверьте, если PFUser.CurrentUser() != nil. Если он не равен нулю, разрешить пользователю совершать вызовы на сервер. В противном случае отобразите экран входа в систему. Если у пользователя нет возможности войти в приложение без входа в систему, он не может совершать звонки.   -  person Dan Levy    schedule 13.04.2016
comment
ХОРОШО. Моих знаний о Node.js здесь не хватает! Мне удалось установить Parse-Dashboard и теперь я могу контролировать безопасность.   -  person Mr T    schedule 13.04.2016


Ответы (1)


Установив Parse Dashboard, я узнал, как настроена безопасность (в MongoDB). В таблице _Schema вы можете установить его в соответствующем столбце. IE ниже, только пользователь может писать в таблицу, тогда как каждый может получать и находить данные, и никто не может добавлять поля:

{
    "_id": "test",
    "ACL": "object",
    "title": "string",
    "productIdentifier": "string",
    "_metadata": {
        "class_permissions": {
            "get": {
                "*": true
            },
            "find": {
                "*": true
            },
            "create": {
                "User": true
            },
            "update": {
                "User": true
            },
            "delete": {
                "User": true
            },
            "addField": {}
        }
    }
}
person Mr T    schedule 15.04.2016