2013-03-28 2 views
0

Я хочу создать Api для своего мобильного приложения для доступа к данным, хранящимся в базе данных MySQL. Однако я прочитал много статей о трехстороннем подходе OAuth, и я думаю, что это не то решение, которое я ищу. Когда я понимаю это правильно, подход с тремя ногами более удобен, если, например, я создаю новый клиент Twitter и хочу использовать твиттер Api.Реализуя 2-legged OAuth с PHP и MySQL

Но мое приложение не стороннее приложение, мое приложение и веб-сайт вкл. база данных от меня. Поэтому я предполагаю, что пользователь запускает приложение, вводя его идентификатор пользователя и пароль, тогда у api есть функция, которая проверяет правильность идентификатора userid/pw и возвращает «true» в результате обратно в приложение. Затем приложение предлагает пользователю возможность доступа к функциям, для которых необходим логин. Поэтому пользователь не должен перенаправляться на веб-сайт и «разрешать» доступ к userid/pw.

Если я правильно понимаю, двухсторонний подход более вероятен для моей цели. Но я тоже смущен этим. Я предполагаю, что пользователь вводит свой id и pw, эти учетные данные просматриваются в базе данных веб-службой, маркер будет искать в базе данных для этого пользователя и будет отправлен в приложение. Кроме того, приложение-токен сохраняется в приложении с самого начала и будет также отправляться с запросом. Приложение будет автоматически сохранять этот токен пользователя из базы данных и будет использовать этот токен каждый раз, когда пользователь что-то делает с веб-службой. При каждом запросе веб-службы токен будет отправляться в службу, и служба проверяет, является ли токен допустимым, иначе ошибка отправляется в приложение.

Я посмотрел этот пример: http://code.google.com/p/oauth-php/wiki/ConsumerHowTo#Two-legged_OAuth

Но нет ничего отметить, что идентификатор пользователя/PW от пользователя ищутся в базе данных ...

Может кто-нибудь объяснить, как я могу решить эту проблему ?

ответ

0

Двусторонний OAuth похож на Client-Server. Это клиентское приложение, запрашивающее полный доступ к данным с сервера. Клиент будет иметь полный доступ ко всем данным, разрешенным его учетными данными, независимо от того, какой пользователь обращается к клиенту.

Трехсторонний OAuth является User-Client-Server. Это Клиент, запрашивающий доступ к данным пользователя с сервера. Клиент будет иметь доступ только к данным авторизованного пользователя (пока пользователь не аннулирует доступ).

+0

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

+0

Если вы управляете как клиентом, так и сервером, вам следует просто создать клиент-серверное приложение, в котором учетные данные пользователя передаются на сервер за кулисами от клиента для авторизации. –

+0

Есть ли какие-либо учебники, которые описывают именно это - как сервер должен реагировать и как я могу реализовать его с помощью PHP ...? – Torben

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