Я согласен, что сообщение в блоге довольно запутанно, и я до сих пор не имею ни малейшего понятия, что они собираются в конечном итоге сделать для того, что они называют «сценарием единого входа».Основное отличие, которое они описывают от простой передачи токену бота из SPA, заключается в том, что они будут выполнять какой-то обмен токенами для другого набора областей, в которых бот нуждается в сравнении с SPA.Это, безусловно, было бы полезно, но на данный момент это «все разговоры», и я не знаю ничего, что они создали, чтобы включить его.
Позвольте мне сначала быстро рассмотреть ваши две точки..
- Отправляет маркер пользователя с каждым сообщением, требует проверки на каждое сообщение, слишком много вычислений.
Прежде всего, я бы рискнул сказать, что на этом этапе большая часть сети построена на обмене токенами.Токены необходимо постоянно передавать, проверять подписи и проверять их срок действия.Это просто природа аутентификации;Я не думаю, что это специфическая проблема бота.
Отправьте токен с TTL и обработайте срок его действия.
Используете ли вы JWT?В них встроен TTL через стандартную заявку exp
, так что вам не нужно беспокоиться о том, чтобы придумать свой собственный TTL.Да, вам нужно проверить срок действия.
Хорошо, это говорит о том, что, если вас беспокоят постоянные передачи токена боту, вы можете один раз отправить его черезпользовательское событие "backchannel" через соединение DirectLine.Затем ваш бот может взять этот токен, проверить его один раз и связать с состоянием диалога, чтобы клиенту не приходилось отправлять его при каждом запросе.Имейте в виду, однако, что вам все равно нужно будет постоянно проверять, что токен не истек.
Это событие обратного канала и его обработка будут полностью проприетарными (например, в коробке нет ничего, чтобы сделать это для вас сегодня).Точно так же, как у вас было бы событие от клиента к боту для отправки токена, вы также можете иметь событие, которое передается от бота к клиенту, чтобы сообщить ему, что ему нужен токен от клиента (например, первый запрос или обновлениеодин из-за истечения срока действия).