Zweryfikować podpis Facebook Connect

głosy
1

Śledzę z instrukcjami zawartymi w tym wielkim Stackoverflow pytanie , ale nie jestem pewien o tym weryfikacji podpisu rzeczy. Jest to przewidziane w jakiś sposób w Facebooku Toolkit czy muszę coś zrobić samodzielnie? Dokumentacja nie jest superclear, jak to zrobić i czy jest już upieczone w facebook Toolkit nie chcę spędzić dużo czasu na to.

Ktoś to zrobić? Należy wspomnieć używam standardowego ASP.NET Web Application w języku C #. Każda pomoc będzie mile widziana!

Utwórz 27/02/2009 o 10:45
źródło użytkownik
W innych językach...                            


2 odpowiedzi

głosy
1

W tej chwili, trzeba to zrobić samemu. Mam pod warunkiem prosty sposób można zadzwonić, aby zobaczyć, czy podpis jest ważny, czy nie.

private bool IsValidFacebookSignature()
    {
        //keys must remain in alphabetical order
        string[] keyArray = { "expires", "session_key", "ss", "user" };
        string signature = "";

        foreach (string key in keyArray)
            signature += string.Format("{0}={1}", key, GetFacebookCookie(key));

        signature += SecretKey; //your secret key issued by FB

        MD5 md5 = MD5.Create();
        byte[] hash = md5.ComputeHash(Encoding.UTF8.GetBytes(signature.Trim()));

        StringBuilder sb = new StringBuilder();
        foreach (byte hashByte in hash)
            sb.Append(hashByte.ToString("x2", CultureInfo.InvariantCulture));

        return (GetFacebookCookie("") == sb.ToString());
    }

    private string GetFacebookCookie(string cookieName)
    {
        //APIKey issued by FB
        string fullCookie = string.IsNullOrEmpty(cookieName) ? ApiKey : ApiKey + "_" + cookieName;

        return Request.Cookies[fullCookie].Value;
    }

Uwaga: tajny klucz i ApiKey są wartościami świadczone przez Facebook, które trzeba ustawić.

Odpowiedział 03/06/2009 o 03:40
źródło użytkownik

głosy
0

Można to zrobić przy użyciu FBConnectAuth , to robi to samo co powyżej, i trochę więcej.

Odpowiedział 27/08/2009 o 00:02
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more