2010-06-21 5 views
3

Я работаю над веб-проектом, в котором мы используем фиды Google для пользователей, и мы храним некоторую информацию о них в нашей базе данных. Мы не хотим, чтобы пользователи создавали учетные записи у нас, но вместо этого они подписываются с использованием своих учетных данных Google. Для меня ясно, что нам понадобится OAuth, но мне интересно узнать об части OpenID. Имеется ли однозначно идентифицируемая информация о пользователе, с которым мы можем получить доступ через OAuth, чтобы отслеживать их данные через сеансы на нашем конце? Если да, то в чем преимущество OpenID?Нужно ли использовать OpenID или достаточно OAuth?

ответ

6

OpenID и OAuth является (в теории, если не на практике) используются для двух отдельных функций:

OpenID является средством управления идентификацией и свести к минимуму создания учетных записей. Пример: Я хочу использовать свою учетную запись Google для входа в систему, куда бы я ни пошел.

OAuth - это средство обмена информацией о пользователе в контролируемой, но открытой/совместимой форме. Пример: Я хочу разрешить Twitterу получать доступ к моим контактам Google без необходимости щебетать мое имя пользователя и пароль Google.

Что это означает, что для ситуаций входа вы хотите OpenID. Если вам нужен доступ к данным пользователя, вам нужен OAuth. Некоторые службы, такие как Twitter, выбрали логин через OAuth, но это неправильное использование протокола больше всего на свете.

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

Надеюсь, это поможет и даст вам лучшее представление о том, что вы ищете.

+0

Да, я работаю с гибридным протоколом. Импульсом для моего вопроса было на самом деле мое желание развиваться на локальном хосте, которое гибрид, по-видимому, не позволяет, но только OAuth, поэтому я застрял в поиске обходного пути для localhost. – lobati

0

Мое общее мнение состояло в том, что предоставление пользователям опции - это хорошо. Я заходил на этот сайт с OpenID. Это быстро и просто, поэтому у меня есть лучший пользовательский интерфейс.