Метод аутентификации API для собственного мобильного приложения социальной сети - PullRequest
2 голосов
/ 31 октября 2011

Как все мы знаем, социальные сети, такие как Twitter, Facebook имеют свои собственные мобильные приложения.Другие сторонние приложения используют свой API, который может быть аутентифицирован только по протоколу OAuth после регистрации приложения.

Так как именно Facebook, Twitter, Foursquare и т. Д. Получают доступ к своим API в своих мобильных приложениях через аутентификацию с помощью "имя пользователя и пароль"?Я не думаю, что они просто посылают имя пользователя и пароль в качестве параметра при каждом запросе.

Еще один важный момент: когда вы входите в эти официальные мобильные приложения, вы не сталкиваетесь с веб-интерфейсом, спрашиваядля разрешения и имеет кнопку «Разрешить это приложение», которая существует в процессе OAuth.Они аутентифицируются по умолчанию!

Во время расследования я обнаружил XAuth , однако после просмотра вступительного видео он выглядел как общее хранилище в браузере.Я не ищу это, и затем я столкнулся с использованием xAuth в Twitter .Он аутентифицируется, посылая имя пользователя / пароль один раз по SSL, а затем сервер выдает пару токен / секрет OAuth.(Это выглядит как OAuth v1 вместо v2, что не круто.)

Похоже, что я ищу, но я не совсем уверен.Существуют ли альтернативы, кроме поддержки сервера OAuth, который требуется xAuth?Потому что в моем случае использования сторонних приложений вообще не будет.

1 Ответ

2 голосов
/ 31 октября 2011

В подобных случаях официальные приложения просто используют любую аутентификацию, какую захотят. Я думаю, что смысл использования OAuth и XAuth для неофициальных приложений состоит в том, чтобы предоставить некоторый доступ тем сторонним лицам, которые (1) могут быть отозваны пользователем, и (2) не требуют, чтобы у третьей стороны было имя пользователя / пароль самого пользователя. Фактически, до более широкого применения OAuth и др., Сторонние приложения, требующие вашего имени пользователя и пароля, были очень распространены. Только после того, как Facebook отключил этот вид доступа, метод OAuth стал более широко использоваться (в их случае).

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

Официальные приложения могут также общаться с выделенным набором серверов аутентификации, которые принимают вход только от мобильного приложения, мобильное приложение может предоставлять некоторую специальную дополнительную информацию, которая идентифицирует его как официальное приложение, или какой-то другой механизм начало имени пользователя и пароля для аутентификации. Я не разработчик Facebook, поэтому я не знаю. Но я хочу сказать, что Facebook / Twitter, вероятно, имеют отдельный логин на основе паролей API, и этот API доступен только через веб-интерфейс и другие официальные режимы входа.

Итак, в вашем случае, если вы создаете социальную сеть (или любую веб-службу, которая будет иметь мобильный доступ), просто используйте стандартный вход на основе пароля для вашего официального приложения, но не делайте этот метод входа доступным каждому. Если вы хотите разрешить сторонний доступ через API, вам действительно нужно настроить сервер OAuth / XAuth, чтобы сделать так, чтобы пароли ваших пользователей оставались только под вашим контролем (и не передавались сторонним группам / сайты / приложения).

...