Я читаю API Facebook и столкнулся с небольшим беспорядком и надеждой, что Вы могли бы помочь. Я использую SDK JavaScript а именно, и при получении request.session назад от обратного вызова входа в систему, интересно, совпадает ли поле 'сигнал' с 'auth_token'? Я знаю, что описания обоих отличаются, но интересно, являются ли они тем же в действительности. Если кто-либо будет знать, то я буду очень цениться.Заранее спасибо.
auth_token
- это токен, который Facebook генерирует для настольных приложений, который вы должны сразу же отправить обратно в Facebook при входе в систему.
sig
с другой стороны - это md5 хэш всех данных сеанса в сочетании с закрытым ключом вашего приложения. Вы можете восстановить сигнатуру из данных сеанса и сравнить ее с переданной сигнатурой, и, если она совпадает, ответ можно считать аутентичным.
Рассмотрим следующие ключи, сохраненные в виде cookie:
a=1
b=2
sig=8a80b0b971da5be75e7197576331b24e
Предположим, что закрытый ключ приложения - «привет»
. Мы можем попытаться восстановить sig
как:
md5("a=1" + "b=1" + "hello"); // 8a80b0b971da5be75e7197576331b24e
, что в данном случае равно значению sig. Мы построили это, объединив все пары ключ = значение в алфавитном порядке по ключу («a» стоит перед «b»), затем конкатенировали закрытый ключ и, наконец, получили md5 результирующей строки.
Я написал сообщение в блоге для проверки файлов cookie, установленных Facebook в Rails (пример PHP уже приведен на веб-сайте Facebook).