Verificați dacă semnătura Facebook Connect

voturi
1

Am urmat instrucțiunile din această mare întrebare StackOverflow , dar eu nu sunt sigur despre acest lucru verifică semnătura. Este acest lucru oferit într - un fel în Setul de instrumente Facebook sau nu am să fac ceva singur? Documentația nu este superclear cu privire la modul de a face acest lucru și în cazul în care acesta este deja coaptă în setul de instrumente Facebook nu vreau să -și petreacă prea mult timp pe ea.

Oricine au făcut acest lucru? Ar trebui să menționăm folosesc un standard ASP.NET aplicații Web în C #. Orice ajutor ar fi apreciat!

Întrebat 27/02/2009 la 10:45
sursa de către utilizator
În alte limbi...                            


2 răspunsuri

voturi
1

În momentul de față, trebuie să o faci singur. Am furnizat o metodă simplă, puteți apela pentru a vedea dacă semnătura este validă sau nu.

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;
    }

Notă: SecretKey și ApiKey sunt valori furnizate de Facebook pe care trebuie să setați.

Publicat 03/06/2009 la 03:40
sursa de către utilizator

voturi
0

Puteți face acest lucru folosind FBConnectAuth , face la fel ca mai sus, și un pic mai mult.

Publicat 27/08/2009 la 00:02
sursa de către utilizator

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