Decode Signed Request Without Authentication

前端 未结 2 866
没有蜡笔的小新
没有蜡笔的小新 2020-12-10 10:12

Are we able to use the Facebook C# SDK to decode the signed_request parameter that is passed to the Facebook Tab page, without using Authentication<

相关标签:
2条回答
  • 2020-12-10 10:16

    What do you mean 'without authentication'? The signed request is signed with your app secret, so you can decode it regardless of whether the current user has authorised your app

    {edit} I now realise you're referring to a library named Authentication{/edit}

    If you find another library or reimplement the algorithm for HMAC SHA-256 and a base64url decoder i'm sure you could do it without using that specific library, but it's probably easier to just use it

    0 讨论(0)
  • 2020-12-10 10:26

    I am just pasting same answer I have answered in another post.

    Fans-only content in facebook with asp.net C# sdk

    You get signed request when your web page is loaded within facebook canvas app; you should be able to parse signed request something similar to following:

    if (Request.Params["signed_request"] != null)
    {
        string payload = Request.Params["signed_request"].Split('.')[1];
        var encoding = new UTF8Encoding();
        var decodedJson = payload.Replace("=", string.Empty).Replace('-', '+').Replace('_', '/');
        var base64JsonArray = Convert.FromBase64String(decodedJson.PadRight(decodedJson.Length + (4 - decodedJson.Length % 4) % 4, '='));
        var json = encoding.GetString(base64JsonArray);
        var o = JObject.Parse(json);
        var lPid = Convert.ToString(o.SelectToken("page.id")).Replace("\"", "");
        var lLiked = Convert.ToString(o.SelectToken("page.liked")).Replace("\"", "");
        var lUserId= Convert.ToString(o.SelectToken("user_id")).Replace("\"", "");
    }
    

    You need to add reference to json libraries in order to parse signed requestin C#, download from http://json.codeplex.com/

    Also refere to How to decode OAuth 2.0 for Canvas signed_request in C#? if you are worndering about signed request.

    0 讨论(0)
提交回复
热议问题