Ověřit podpis Facebook Connect

hlasů
1

Sledoval jsem podle pokynů uvedených v této skvělé StackOverflow otázku , ale nejsem si jist o tomto ověření podpisu věc. Je to za předpokladu, nějakým způsobem v Toolkit Facebook nebo musím něco udělat sám? Dokumentace není Superclear o tom, jak to udělat, a pokud je již pečené na facebooku toolkitu nechci trávit mnoho času na to.

Každý, kdo to udělal? Je třeba zmínit i použití standardního ASP.NET webové aplikace v jazyce C #. Jakýkoliv pomoci chtěl bych být ocenil!

Položena 27/02/2009 v 10:45
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
1

V tuto chvíli budete muset udělat sami. Já jsem za předpokladu, jednoduchou metodu můžete volat, aby zjistili, zda je podpis platný, nebo ne.

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

Poznámka: SecretKey a apikey jsou hodnoty poskytované Facebooku, které je třeba nastavit.

Odpovězeno 03/06/2009 v 03:40
zdroj uživatelem

hlasů
0

Můžete to udělat pomocí FBConnectAuth , to dělá to samé jako výše, a trochu víc.

Odpovězeno 27/08/2009 v 00:02
zdroj uživatelem

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