Так как вы создаете свой собственный маршрутизатор, вам нужно будет создать logi c для обработки аутентификации WAMP.
В вашем примере заявка "magic_secret_1" - это то, что отправит клиент к маршрутизатору, и маршрутизатор проверит.
В вашем маршрутизаторе необходимо добавить код для обработки сообщений HELLO и AUTHENTICATE. Грубая логика c для каждого:
handle HELLO
Проверка того, что имя пользователя разрешено в области.
Проверка authmethods
массив содержит ticket
.
Ответ сообщением CHALLENGE: [4, "ticket", {}]
handle AUTHENTICATE
Клиент отправит сообщение типа [5, "magic_secret_1", {}]
. Извлеките authid
, связанный с сеансом Wamp (маршрутизатор должен был сохранить это при обработке сообщения HELLO), и передать realm
, authid
и ticket
в функцию, которая проверяет содержимое словаря mUserToTicket
.
Клиент
На стороне клиента вы можете добавить билет следующим образом:
var connection = new autobahn.Connection({
url: 'ws://127.0.0.1:26429/',
realm: 'testRealm',
authmethods: ["ticket"],
authid: 'joe',
onchallenge: function () {
return "magic_secret_1";
}
});
Аутентификация на основе билетов WAMP