#node.js #oauth #quickbooks-online
#node.js #oauth #quickbooks-онлайн
Вопрос:
Я тестирую демонстрационную версию Intuit OAuth2.0 для nodejs. Ссылка
В демонстрации используется пакет node-quickbooks на экспресс-сервере. Демонстрация работает нормально, но у меня есть вопрос больше об общем потоке «best-practice» для многопользовательской настройки.
Например:
У вас есть собственное веб-приложение, которое поддерживает множество пользователей. Пользователи входят в ваше веб-приложение и решают предоставить вашему веб-приложению доступ к Quickbooks.
Как мне правильно обращаться с несколькими пользователями?
В настоящее время, когда я разрешаю соединение OAuth между веб-приложением «demo» и Quickbooks, токен аутентификации сохраняется на стороне сервера.
Экспресс-сеанс не является уникальным для конкретного пользователя, вошедшего в систему в демонстрационном веб-приложении. Когда я подключаюсь с разных устройств к моему локальному демонстрационному веб-приложению, все они используют ранее сохраненный на стороне сервера токен аутентификации.
Что является наилучшей практикой для нескольких пользователей?
Ответ №1:
Демонстрация, предоставленная Intuit, была чрезвычайно полезной, но она не предоставляла никакого дополнительного кода в шаблоне для обслуживания нескольких пользователей и правильного хранения access_token / refresh_token / realmId в хранилище (например, Mongo). В итоге я объединил этот демонстрационный проект со стандартной локальной стратегией Passport, которая использует mongo. Я обновил модель mongoose для хранения онлайн-токенов Quickbooks. Таким образом, когда пользователь входит в мое веб-приложение через Passport, мы можем просто извлечь токены, которые связаны с учетной записью пользователя внутри mongo.
Я, вероятно, сделаю репо для этого, так как думаю, что это может быть полезно другим. На данный момент, если кто-нибудь найдет эту тему и у него возникнут какие-либо вопросы, не стесняйтесь отправлять сообщение.
С уважением