Я успешно использовал пакет xero-node npm в приложении Node / Express с полным стеком.
Процесс:
Подключение к xero api для получения токена запроса и создания URL-адреса аутентификации:
req.session.oauthRequestToken = token;
Клиент перенаправляется на Xero login.
- При отправке xero-login пользователь перенаправляется на обратный вызов, указанный в остальных API, то есть http: localhost: 8080 / callback.
Функция '/ callback' получает oauthRequestToken и сравнивает его с новым req.query.oauth_token, поступающим от клиента:
if (req.query.oauth_verifier && req.query.oauth_token === req.session.oauthRequestToken
Если они соответствуют требованию.session.oauthRequestToken устанавливается в качестве нового токена.
Используется для экспресс-сеанса с сохранением сеанса в MongoDB с Passport в качестве помощника.
Now I 'Я разделил мое приложение на интерфейс и приложение для остальных API.Я перестал использовать Passport и теперь просто использую JWT для аутентификации.поэтому я больше не использую сеансы или состояния.
Какая альтернатива использованию req.session в этом случае?Насколько я понимаю, мне не следует использовать его, так как остальные API не имеют состояния, но я могу ошибаться?
Я думал о передаче oauthRequestToken с каждым http-запросом, как я делаю с токеном JWT, но это невозможноЭкран аутентификации Xero так как у меня нет контроля.Может быть, я могу использовать что-то вроде http-перехватчика, чтобы добавить заголовок из формы Xero?