Проверить подпись Facebook Connect

голоса
1

Я следовал инструкциям в этом большом StackOverflow вопросе , но я не уверен в этом убедиться подписью вещи. Является ли это предусмотрено в некотором роде в инструментарии Facebook или я должен сделать что - то сам? Документация не Superclear о том , как это сделать , и если он уже запеченный в facebook инструментарии я не хочу тратить много времени , на нем.

Любой человек сделал это? Следует отметить, я использую стандартный ASP.NET веб-приложения в C #. Любая помощь будет оценен по достоинству!

Задан 27/02/2009 в 10:45
источник пользователем
На других языках...                            


2 ответов

голоса
1

На данный момент, вы должны сделать это самостоятельно. Я предоставил простой метод, вы можете позвонить, чтобы увидеть, если подпись действительна или нет.

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

Примечание: SecretKey и ApiKey ценности, предоставляемые Facebook, которые вам нужно установить.

Ответил 03/06/2009 в 03:40
источник пользователем

голоса
0

Вы можете сделать это с помощью FBConnectAuth , он делает то же самое, что и выше, и немного больше.

Ответил 27/08/2009 в 00:02
источник пользователем

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