Поиск текущей страницы на вкладке страницы с помощью js - PullRequest
1 голос
/ 29 февраля 2012

У меня есть приложение Facebook с установленной вкладкой на многих страницах.

Я знаю, что могу анализировать, на стороне сервера, подписанный запрос и иметь все данные, которые мне нужны на странице, текущий пользователь и т. Д.

Однако мне просто нужно знать идентификатор страницы или даже URL страницы, используя JS на стороне клиента (поэтому нет доступа к подписанному запросу, который отправляется через POST, без PHP или другого языка на стороне сервера).

Есть ли способ получить эту информацию в одиночку? Даже если неподписанный и ненадежный?


Мне бы очень хотелось узнать, возможно ли это вообще до настройки процесса на стороне сервера, однако, даже если ответ «нет, вы не можете этого сделать», пожалуйста, объясните, почему единственный способ Если текущая страница должна быть серверным сценарием, какие нарушения безопасности могут возникнуть, если Facebook предлагает небезопасный способ узнать текущую страницу.

Ответы [ 2 ]

1 голос
/ 03 марта 2012

подписанный запрос (http://developers.facebook.com/docs/authentication/signed_request/) является частью authResponse при вызове FB.getLoginStatus() (https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/)

{
    status: 'connected',
    authResponse: {
        accessToken: '...',
        expiresIn:'...',
        signedRequest:'...',
        userID:'...'
    }
}

А внутри подписанного Запроса находится идентификатор страницы.

Однако, чтобы это работало, вам нужно будет аутентифицировать пользователя в вашем приложении. Но, по крайней мере, вы можете делать все это на стороне клиента без необходимости сценариев на стороне сервера. И еще один очень важный момент, который нужно помнить, - это то, что вам понадобится секрет вашего приложения для анализа подписанного запроса, и раскрытие этого критически секретного элемента на стороне клиента может быть чрезвычайно рискованным!

Если ваши требования говорят, что вы не можете ни авторизовать пользователя, ни обработать подписанный запрос на стороне сервера, то вы не сможете получить клиентскую часть идентификатора страницы.

В целях безопасности обработайте подписанный на сервере запрос. :)

Удачного кодирования!

0 голосов
/ 03 марта 2012

Используя window.top.location, вы можете получить полный URL-адрес вкладки страницы.Затем вы можете разобрать ID оттуда!

...