Аутентификация API через JavaScript SDK - PullRequest
4 голосов
/ 07 апреля 2011

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

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

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

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

Спасибо

Gavin

1 Ответ

1 голос
/ 08 апреля 2011

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

Передайте (заявленный, но ненадежный) идентификатор приложения в ваш init(), jsonp на ваш домен, затем либо:

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

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

Это предполагает, что у вас даже есть представление о пользователях, как у Facebook.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...