2009-02-27 8 views
1

J'ai suivi les instructions dans ce grand Stackoverflow question mais je ne suis pas sûr de cette chose de signature de vérification. Est-ce fourni d'une manière ou d'une autre dans le Facebook Toolkit ou dois-je faire quelque chose moi-même? Le documentation n'est pas superclear sur la façon de faire cela et si elle est déjà cuite dans la boîte à outils facebook, je ne veux pas passer beaucoup de temps là-dessus.Vérifier la signature Facebook Connect

Quelqu'un l'a fait? Devrais mentionner que j'utilise une application Web ASP.NET standard en C#. Toute aide serait appréciée!

Répondre

1

Pour le moment, vous devez le faire vous-même. J'ai fourni une méthode simple que vous pouvez appeler pour voir si la signature est valide ou non.

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

Remarque: SecretKey et ApiKey sont des valeurs fournies par Facebook que vous devez définir.

0

Vous pouvez le faire en utilisant FBConnectAuth, il fait pareil que ci-dessus, et un peu plus.

Questions connexes