Node.js + ws + QT QML Websocket + Аутентификация? - PullRequest
0 голосов
/ 24 марта 2019

Какие механизмы аутентификации можно использовать, если у меня есть сервер веб-сокетов, реализованный в Node.js с ws , например:

const WebSocket = require('ws');

const wss = new WebSocket.Server({ port: 8080 });

let theObjects = [];

wss.on('connection', function connection(ws) {
ws.on('message', function incoming(message) {
    if (message === 'create') theObjects[username] = CreateObject();
    else if (message === 'change') theObjects[username].someParam = someVal;
});
});

и клиент QT QML:

WebSocket {
    id: socket
    url: "ws://myhost.ru:8080"
    onTextMessageReceived: {
        messageBox.text = messageBox.text + "\nReceived message: " + message
    }
    onStatusChanged: if (socket.status == WebSocket.Error) {
                         console.log("Error: " + socket.errorString)
                     } else if (socket.status == WebSocket.Open) {
                         var msg = {command: 'create', authorization: '****', params: {something: 'really cool'}}
                         socket.sendTextMessage(JSON.stringify(msg))
                     } else if (socket.status == WebSocket.Closed) {
                         messageBox.text += "\nSocket closed"
                     }
    active: false
}

Я не уверен, что этот сценарий на 100% правильный, но по крайней мере у меня есть следующая идея о том, как мой клиент должен общаться с сервером:

Клиент должен иметь возможность подключиться к пользователюимя и пароль (через WSS), создайте некоторый объект на стороне сервера, запустите некоторую обработку данных с этим объектом и отключитесь.Когда пользователь подключается позже, он должен иметь доступ к своему объекту на стороне сервера (по имени пользователя или некоторому токену).Пока пользователь подключен, объект на стороне сервера периодически отправляет некоторые данные клиенту.

Вопрос в том, как правильно реализовать это и как аутентифицировать пользователя?

Лично,Я не нашел ничего связанного с аутентификацией ни в QT Websocket , ни в Node.js ws module

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...