2016-12-18 12 views
2

私はAzure関数AppにFacebook認証を使用していますが、ブラウザ内の関数に移動すると正常に動作します。私はアプリ内から私の機能を呼び出すが、認証を行う方法は不明である。App内からAzure関数への認証

現在、私はFacebookクライアントを使用しようとしていますが、これは私の関数app内の ".auth/login/facebook/callback"関数に転送するaccess_tokenを返します。残念ながら、私が得ることができる限り、GETを介してこれを行うと、JavaScriptを含むHTMLが返され、POST経由でそれを行うとFacebookにリダイレクトされます。

私が実際に必要とするのは、Azure関数AppServiceAuthSessionによって作成されたクッキーです。これを使用して関数を呼び出すことができます。

編集:私は上記のように、私はちょうどクッキーを使うことができるとは思わないので、正しく認証する必要があります。

ニック。

+0

どのようなタイプのクライアントを使用していますか? access_tokenをURLの関数にどのように送りますか?そのaccess_tokenはFacebookから直接入手したものですか? – brettsam

+0

私はFacebookのC#クライアントを試してみましたが、それを私の関数のURLで使ってみました。また、 ".auth/login/facebook/callback"に渡しました。私はクエリパラメータ、つまりhttps:// myfunctionapp/api/foobar?access_token = abcdとして送信しました。また、今朝私はApp Servicesに使用されるMobileServiceClientを試しましたが、動作させることができず、Facebookのログインボックスが表示されました認証後、ネットワークに問題があると言います。 – Nick

+0

コメントする必要があります。私はFacebookのC#SDKからも入手可能な認証コードを返そうとしました。うん、どちらもFacebookから来た。 – Nick

答えて

4

Facebook Javascript SDKを使用している間に私はトークンを関数appに渡すことができました(私はC#で運がなかった) - これが正しい方向に動くようになるかもしれません。

クライアント:

  1. accessTokenを返すのFacebookへのログインを行います。
  2. クライアントはこれを「App Service Token」のために交換する必要があります。accessTokenそれはの内容のhttps://{app}.azurewebsites.net/.auth/login/facebookにPOSTをすることによってこれを行います。これでauthenticationTokenが返されます。
  3. x-zumo-authという名前のヘッダーにauthenticationTokenを使用します。そのヘッダーを使用して関数アプリケーションにすべての要求を行います。

機能アプリ内から、現在ログインしているユーザーに現在のプリンシパルを設定する必要があります。

+0

素晴らしい感謝、私は今夜それを試してみよう! – Nick

+0

それはうまくいきました。私が気付いたのは、電子メールによる申し立てがもはや機能しなくなったことですが、機能が実行されているので、おそらく別の理由があります。私は調査します。ご協力いただき誠にありがとうございます。 – Nick

関連する問題