узел-quickbooks Экспресс-сеансы OAuth

#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.

Я, вероятно, сделаю репо для этого, так как думаю, что это может быть полезно другим. На данный момент, если кто-нибудь найдет эту тему и у него возникнут какие-либо вопросы, не стесняйтесь отправлять сообщение.

С уважением