NoneO Auth2 обновить токен на рабочем процессе

У меня есть приложение NodeJS, которое по сути является рабочим процессом, который будет работать на Heroku. Это приложение авторизуется с помощью конечной точки oAuth, а затем начинает прослушивание потока данных с использованием вновь установленного соединения.

После того, как это соединение установлено, и работник сидит там и слушает, я не уверен, как / когда обновление токена вступит в игру.

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

Пример кода:

var express = require('express');
var router = express.Router();
var jsforce = require('jsforce')

// Vars
var oauth2 = new jsforce.OAuth2({
  loginUrl: 'https://example.my.salesforce.com',
  clientId: 'redacted',
  clientSecret: 'redacted',
  redirectUri: 'http://localhost:3000/oauth2/callback'
});

var conn = new jsforce.Connection({ oauth2: oauth2 });

// Auth
router.get('/oauth2/auth', function (req, res) {
  res.redirect(oauth2.getAuthorizationUrl());
});

// Callback with auth code
router.get('/oauth2/callback', function (req, res) {

  var code = req.param('code');

  conn.authorize(code, function (err, userInfo) {
    if (err) { return console.error(err); }
    console.log(conn.accessToken);
    console.log(conn.refreshToken);
    console.log(conn.instanceUrl);
    console.log("User ID: " + userInfo.id);
    console.log("Org ID: " + userInfo.organizationId);

    startWorker();
    res.status(200).send('begin');

  });

});

// Start listening for stream
function startWorker() {
  console.log('waiting for data...')
  conn.streaming.topic("/event/heroku_notification__e").subscribe(function (message) {
    console.dir(message);
  });
}

module.exports = router;

В этом примере я использую express так что я могу сделать необходимые звонки. Мне, вероятно, нужно будет использовать HTTP библиотека, хотя, поскольку это не веб-процесс.

однажды startWorker() начинается после аутентификации в первый раз, как сохранить conn в живых? Я получаю токен обновления /oauth2/callback но на самом деле мне нечего передать, поскольку он просто открывает поток, а не перемещается.

0 ответов

Другие вопросы по тегам