Ах да, ты прав! Я удаляю последнюю часть :)

ся, это часто задаваемые вопросы, и, прочитав тонны документации по этому вопросу, я все еще не уверен, что все правильно понял (полагаю, что глупость - это возможный ответ;)).

Я пытаюсь создать API, который будет предоставлять услуги пользователям. Пользователи будут подключены через Facebook или через любого провайдера OpenId (я разделяю Facebook, поскольку они внедряют свою собственную систему подключения).

(Я думаю, что это хороший способ, потому что я не буду хранить пароль пользователя и, наконец, будет меньше проблем в случае аналогичной проблемы Gawker.)

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

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

Я постараюсь объяснить

В моем (чудесном мире счастливых заботливых медведей) я структурировал свой проект по следующим частям:

RESTful APIВеб-приложения, которые будут использовать API. В идеале я думал о создании полного проекта html / css / js без какой-либо работы на стороне сервера (php / python / java или что-то еще)Мобильное приложениеПриложение для Windows / Mac / Linux

Насколько я видел, каждый раз, когда кто-то спрашивает, как реализовать аутентификацию RESTful API, появляются три основных ответа:

HTTP основной (+ желательно SSL) / дайджестOAuthOpenId

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

Но OAuth и OpenIdне то же самое, один (OpenId) обозначаетАутентификация (что основа вопросов), где второй (OAuth) обозначаетавторизация!

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

Итак, чтобы прояснить ситуацию,OAuth НЕ является механизмом аутентификации, это :

Открытый протокол для безопасной авторизации API (источник:http://oauth.net/)

Тогда единственным способом аутентификации пользователя будет использование OpenId. И тогда, черт возьми, сбывается.

Если я возьму в качестве примера веб-приложение, которое состоит исключительно из html / css / js и не содержит компонентов на стороне сервера, оно взаимодействует с API.

Веб-приложение должно указать API, что пользователь, в настоящее время использующий API, - это господин Х.

Для этого в веб-приложении отображается всплывающее окно со списком поставщиков OpenId, в котором пользователю предлагается подтвердить свою подлинность. Пользователь нажимает на одну из них, перенаправляется (или открывается новое всплывающее окно) к провайдеру OpenId, указывает его логин / пароль, проходит аутентификацию провайдером OpenId, которые возвращают успех с токеном (я упростил общение).

Это здорово, теперь веб-приложение знает, что пользователь действительно мистер X. Но API все еще имеет какое-то представление!

Наконец, мой вопрос довольно прост: как я могу аутентифицировать Mister X через веб-приложение в API через OpenId и после этого, как веб-приложение и API могут хранить информацию о том, что это Mister X, который в настоящее время использует веб-приложение и конечно же API.

Спасибо большое за помощь !

отредактированный формат

Ответы на вопрос(1)

Ваш ответ на вопрос