2016-02-27 3 views
2

Хотелось поделиться этим для других, которые могут иметь дело с тем же. Если вы используете лазурный мобильный клиент cordova client (https://github.com/Azure/azure-mobile-apps-cordova-client), вы заметите, что SignalR не поддерживает поддержку.Использование приложений Azure для мобильных устройств Cordova client with signalR

Я использую встроенную поддержку SignalR с помощью WebAPI, которая генерирует ваш прокси-файл SignalR JavaScript для вам использовать. Но этот прокси (или вызовы signalR в целом) не будет работать, если вы получили настройку аутентификации для вашего API. Вероятно, вы хотите предотвратить создание отдельной настройки проверки подлинности только для SignalR, когда у вас уже есть клиент мобильного сервиса.

ответ

2

Так что вы делаете следующее:

После входа в систему услуг мобильной связи, повторно использовать заголовки X-ZUMO-AUTH и X-ZUMO-ВЕРСИЯ так:

var token = mobileServiceClient.currentUser.mobileServiceAuthenticationToken; 
var version = mobileServiceClient.version; 

var headers = { 
    "X-ZUMO-AUTH": token, 
    "X-ZUMO-VERSION": version 
}; 

$.signalR.ajaxDefaults.headers = headers; 

Прокси-сервер signalR теперь будет повторно использовать эти заголовки при отправке запросов в конечную точку WebAPI. Это будет означать, что запросы теперь аутентифицируются с использованием того же маркера, что и клиент мобильных приложений, полученный для вас.

Следует обратить внимание: мне еще предстоит выяснить, что произойдет, когда токен истекает или обновляется. Я бы посоветовал сбросить заголовки после каждого успешного запроса на вход.

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