2016-10-13 2 views
1

Я хочу отправить объект json на другой сервер, независимо от моего веб-сайта.Отправка данных на независимый удаленный сервер

API, который я использую, требует, чтобы пользователь (пользователь x в этом случае) регистрировался в своей службе для авторизации, чтобы пользователь x мог манипулировать списком пользователя x. Однако другие пользователи не могут писать в список x. Таким образом, пользователям необходимо запросить элемент, который будет добавлен в список x, тогда сервер, который зарегистрирован в учетной записи x, может добавить его в список x. См. Изображение ниже.

http://imgur.com/a/wT53t

Я использую узел/express.js для серверов на стороне пользователя. Тем не менее, я не знаю, что я должен использовать для сервера, который работает только для получения запросов и записи в список x. Можете ли вы дать некоторые рекомендации относительно того, как я могу добиться чего-то подобного?

Спасибо!

ответ

0

Есть два варианта здесь:

  • Вы должны обновить список в режиме реального времени для подключенных пользователей. Для этого вы должны использовать: WebSockets (например, socket.io) или LongPolling.

  • Во втором варианте вам не нужно обновлять список в режиме реального времени. Вы просто используете экспресс. Принять данные и обновить список на стороне сервера.

Auth с веб-сокеты:

После того, как понимание природы веб-сокеты, вы вольны строить любую логику вокруг них, в том числе аутентификации/авторизации. Большая библиотека, занимающаяся множеством аутентичных вещей, - passport.js.

Очень быстрый и абстрактный пример стороны сервера:

socket.on('auth', function(data) { 
    const vendor = data.vendor, 
     token = data.id 

    switch(vendor) { 
    /* 
     Here you grab through some social API user social id 
     and save it to database 
    */ 
    } 

    /* set socket as logged in */ 
    socket.logged = true 

    /* or even save user object */ 
    socket.user = { vendor, token } 
}) 

В следующий раз вам нужен авторизованный пользователь, нужно проверить:

socket.on('mustBeAuthorized', function() { 
    if(socket.logged || socket.user) { 
    /* Continue your logic*/ 
    } 
}) 
+0

Отлично! Спасибо. Разделы веб-сайтов также предоставляют место для моего независимого авторизованного сервера? – user82395214

+0

обновлен с помощью примера auth – Lazyexpert

+0

О «независимом сервере» снова, вы можете построить любую логику, которую хотите. Веб-сокеты очень гибкие. – Lazyexpert

Смежные вопросы