Я должен создать Rails API, который отвечает запросам приложения iPad. Я имею, среди прочего, модель магазина, модель пользователя и модель продукта.Создание рельсов - как обрабатывать сеанс входа в сеанс регистрации
Приложение iPad работает так: после запуска сначала необходимо войти в систему с идентификатором и паролем. Это делается менеджером магазина (вероятно, утром, в начале рабочего дня или даже только один раз, если они никогда не выходят из системы). Это происходит на нескольких iPad. Затем iPad предоставляется клиенту, который в рамках «сеанса» магазина регистрируется как пользователь. Дело в том, что пользователь может входить в систему с одинаковыми учетными данными в разных магазинах, и в зависимости от этого они могут видеть разные продукты в iPad-приложении.
Итак, в рамках сеанса Rails мне нужно сохранить current_user, но также current_shop. Вопрос в том, как это реализовать?
Я думал о следующем: после того, как менеджер магазина вводит идентификатор и пароль, API возвращает некоторый токен, который сохраняется на iPad. Затем - когда пользователь входит в систему, этот токен отправляется вместе со своими учетными данными, так что в момент входа в систему я знаю, в каком магазине находится пользователь, и знаю, какие продукты должны возвращаться в первоначальном ответе после входа в систему. Я также сохраняю токен магазина в сеансе пользователя.
Сначала я хотел бы узнать, правильна ли моя общая идея. Кроме того, я хотел бы знать, как вы его реализуете. Я думал использовать Devise для пользователя и ручную проверку подлинности для магазина, но я должен выяснить, как интегрировать оба.
Просто примечание, это все еще не приложение, которое проверяет подлинность, но 2 человека, вы по-прежнему действительно хотите использовать имя пользователя и пароль здесь, а не токен API, или я что-то упустил? – bbozo
Да, я бы предложил еще добавить метод входа/выхода, который генерирует/сбрасывает/возвращает (временный) токен. Существует не так много преимуществ, чтобы использовать токен вместо имени пользователя и пароля, кроме того, что вам не нужно сохранять пароль на клиенте, а только токен. – skahlert