0

Azure Mobile Service から App Service に移行しましたが、拡張 Facebook 認証を実装する最善の方法を見つけるのに苦労しています。

私の古い実装では、FacebookLoginProvider から継承し、クレームからトークンをフェッチしました。次に、CustomFacebookLoginProvider をログイン プロバイダーに追加しました。次に、トークンを使用して、ユーザーに関する詳細情報 (生年月日、友人、性別) を取得します。この情報を使用して、ユーザー オブジェクトを作成し、DB に保存しました。

ドキュメントが見つからないため、App Service でこれを再作成する最善の方法について何か提案はありますか?

4

4 に答える 4

1

Facebook 認証の設定方法については、こちらのドキュメントを参照してください (既に多くのことを理解しているようです)。

https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-how-to-configure-facebook-authentication/

Facebook認証が設定されたので、ユーザー情報を取得する方法を示す以下を参照できます。

https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-dotnet-backend-how-to-use-server-sdk/#user-info

// Get the credentials for the logged-in user.
var credentials = 
    await this.User
    .GetAppServiceIdentityAsync<FacebookCredentials>(this.Request);

if (credentials.Provider == "Facebook")
{
    // Create a query string with the Facebook access token.
    var fbRequestUrl = "https://graph.facebook.com/me?access_token=" 
        + credentials.AccessToken;

    // Create an HttpClient request.
    using (var client = new System.Net.Http.HttpClient())
    {
        // Request the current user info from Facebook.
        using (var resp = await client.GetAsync(fbRequestUrl))
        {
            resp.EnsureSuccessStatusCode();

            // Do something here with the Facebook user information.
            var fbInfo = await resp.Content.ReadAsStringAsync();
        }
    }
}

GetAppServiceIdentityAsync拡張メソッドを機能させるには、System.Security.Principalのusingステートメントを追加する必要があることに注意してください。

クエリできる Facebook ユーザー プロパティの詳細については、こちらの Facebook ドキュメントを参照してください: https://developers.facebook.com/docs/graph-api/reference/user。Facebook グラフへの呼び出しで、追加フィールドのクエリ文字列パラメーターとして必要なユーザー プロパティを指定する必要がある場合があることに注意してください。

于 2016-01-14T18:26:19.027 に答える
0

iOS アプリで Facebook アクセス トークンを取得するために、次の方法を使用しています。

App Services には、要求ヘッダーに Facebook アクセス トークンが含まれています。 https://azure.microsoft.com/en-in/documentation/articles/app-service-api-authentication/を参照してください。

アクセス トークンを取得するには、次のコードを使用して、Azure Portal で facebookUserInfo などのカスタム API を作成します。

module.exports = {
"get": function (request, response, next) {
    response.send(200, { facebookAccessToken: request.headers['x-ms-token-facebook-access-token'] });
}};        

iOS アプリで、次のコードを使用してカスタム API をクエリします。

    let client = self.table!.client
    if client.currentUser != nil {
        client.invokeAPI("facebookUserInfo", body: nil, HTTPMethod: "GET", parameters: nil, headers: nil, completion: { (result, response, error) -> Void in
            if let resultDict = result {
                if let facebookAccessToken = resultDict["facebookAccessToken"]! {
                    print(facebookAccessToken)
                }
            }
        }
    }
于 2016-02-02T03:19:21.150 に答える
0

Azure App Services の Easy Auth 機能を使用することで、認証について心配する必要がなくなりました。これに関するブログ投稿があります。FB GraphApi を使用して FB データを照会する方法について説明しました。リンクは次のとおりです: https://blogs.msdn.microsoft.com/kaushal/2017/06/08/using-easy-auth-to-query-facebook-information-via-graph-api/

サンプルコードを Github にデプロイしました。リンクは次のとおりです。https://github.com/kaushalp/Facebook-GraphApi-with-EasyAuth

于 2017-06-23T13:09:09.533 に答える