2016-12-18 9 views
2

Я использую аутентификацию Facebook для своего приложения Azure Function, он отлично работает, если я перехожу к функции в браузере. Я хотел бы вызвать мои функции из приложения, но не знаю, как выполнить аутентификацию.Аутентификация функции Azure из приложения

В настоящее время я пытаюсь использовать Facebook-клиент, это возвращает мне access_token, после чего я пересылаю функцию «.auth/login/facebook/callback» в своем функциональном приложении. К сожалению, это насколько я могу получить, делая это с помощью GET, возвращает HTML с JavaScript, и делает это через POST-перенаправление обратно в Facebook.

Что мне действительно нужно, это cookie, созданный функцией azure, AppServiceAuthSession, я полагаю, что тогда я смогу использовать это для вызова функций.

Редактировать: Я не думаю, что могу просто использовать файл cookie, как я сказал выше, поэтому мне нужно пройти аутентификацию должным образом.

Ник.

+0

Какой тип клиента вы используете? Как вы отправляете функцию access_token в функцию - в URL? Это access_token тот, который вы получаете непосредственно от Facebook? – brettsam

+0

Я попробовал Facebook C# клиент и попытался использовать его в своих URL-адресах моей функции, а также передать его в «.auth/login/facebook/callback», ни один из них не работал. Я отправил его как параметр запроса, т. Е. Https: // myfunctionapp/api/foobar? Access_token = abcd. Сегодня утром я попробовал MobileServiceClient, используемый для служб App, но я не мог заставить его работать, появляется окно входа в Facebook, затем после аутентификации он говорит, что у него есть сетевые проблемы. – Nick

+0

Я должен прокомментировать, я также попробовал вернуть код авторизации, который также можно получить из CK-файла Facebook без везения. Да, оба из Facebook. – Nick

ответ

4

Я смог получить маркеры, переданные в приложение, используя Javascript SDK для Facebook (мне не повезло с C# 1) - возможно, это заставит вас двигаться в правильном направлении.

Клиент:

  1. Выполняет вход в Facebook, которая возвращает accessToken.
  2. Клиент должен обменять этот accessToken на «токен обслуживания приложений». Он делает это, делая POST до https://{app}.azurewebsites.net/.auth/login/facebook с контентом { "access_token" : "{token from Facebook}" }. Это вернет обратно authenticationToken.
  3. Используйте это authenticationToken в заголовке с именем x-zumo-auth. Сделайте все запросы к вашему функциональному приложению с помощью этого заголовка.

Внутри вашего приложения-функции у вас должен быть установлен текущий основной набор для этого зарегистрированного пользователя.

+0

Отличное спасибо, я попробую сегодня! – Nick

+0

Это работало отлично, только я заметил, что получение жалобы по электронной почте больше не работало, но функция работает, поэтому, вероятно, есть еще одна причина для этого. Я буду исследовать. Большое спасибо за вашу помощь. – Nick