2011-04-07 2 views
4

Я создаю JavaScript SDK для нашего API. API в настоящее время требует (2-legged) аутентификации OAuth. Очевидно, что это не подходит для JS SDK, поскольку ключ и секрет находятся на простом сайте (в JS-коде).Проверка подлинности API через JavaScript SDK

Facebook требует только вашего идентификатора приложения, когда вы запускаете его JS SDK, поэтому я хотел бы реализовать нечто подобное (или с той же простотой). Когда разработчик запрашивает ключ, нам нужен домен своего приложения. Я думал об обнаружении IP-адреса отправленного домена (например, myclientapp.com имеет 192.168.0.0 IP). И затем аутентификация запросов JavaScript путем подтверждения IP-адреса удаленных хостов.

Это лучший/самый простой способ сделать это?

ОБНОВЛЕНИЕ: В качестве Rup указано, что удаленный IP-адрес будет клиентом и, следовательно, не соответствует IP-адресу приложений. Вот и все. Поэтому, чтобы повторить, я ищу решение, которое позволит мне внедрить некоторую форму аутентификации в моем JavaScript-sdk для моего API, который не может быть подделан кем-то другим (пытается быть кем-то elses-приложением).

Спасибо,

Gavin

+0

Запрошенный IP-адрес будет конечным пользователем, а не машиной, обслуживающей домен, - вы не можете использовать это, извините. Или вы имели в виду запросы на ключ API? Я сомневаюсь, что они тоже пришли с сервера. – Rup

+0

Правда, плотина. Любые предложения о том, что я могу использовать? от клиентской машины, потому что в противном случае любой мог бы притворяться чьим-либо приложением. – Gcoop

ответ

1

аутентифицировать пользователя вместо этого.

Были ли (заявленный, но не заслуживает доверия) идентификатор приложения передается в вашу init(), JSONP из вашего домена, то либо:

  • Вернуть код действителен для создания запросов API с, если пользователь вошел в систему * и уже разрешил приложение.
  • Создайте окно на свой сайт (или переадресацию или что-то еще), чтобы иметь возможность входа в систему (если необходимо) и авторизации приложения.

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

Это значит, что у вас есть есть понятие пользователя, например, Facebook.

* Проверьте файлы cookie, не все браузеры принимают их в ответ на запросы ajax; но все браузеры будут отправить им.

+0

Вид того, что мне нужно. В основном jsonp из домена, когда у меня есть только идентификатор приложения как auth. Затем, как только пользователь будет аутентифицирован или api будет доступен через сервер с (2-legged) oauth, тогда разрешите стандартный JSON. – Gcoop

Смежные вопросы