OAuth с API StackExchange

07.09.2015 06:32:39 Просмотров 59 Источник

Я пытаюсь для проверки подлинности пользователей на моем сайте, используя клиент StackExchange с OAuth API-интерфейс.

Все работает нормально, когда пользователь регистрируется в первый раз. На этом этапе я получаю "токен доступа", который я сохраняю в своей БД.

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

Если да, то как я могу проверить наличие существующих пользователей, которые уже зарегистрировались с помощью StackExchange?

Я могу получить информацию о пользователе, указав конкретное имя сайта (например, "stackoverflow"). Но что делать, если у меня нет этой информации, и мне нужно проверить, что пользователь уже вошел в систему через StackExchange?

Есть ли" пользовательская " информация, которую я могу получить с помощью accessToken?

У вопроса есть решение - Посмотреть?

Ответы - OAuth с API StackExchange / OAuth with StackExchange API

Является ответом!
Hans Z.

07.09.2015 09:23:35

Реализация OAuth StackExchange не предназначена для аутентификации пользователей в сторонних приложениях, но вместо этого она предназначена для авторизации этих сторонних приложений для получения доступа к API StackExchange.

Маркер доступа, который вы получаете, не является маркером, представляющим текущего вошедшего пользователя, он представляет разрешение на доступ к API от имени пользователя, предоставившего его вашему приложению. Это классическая путаница о сфере применения OAuth 2.0, которая подробно обсуждается здесь: http://oauth.net/articles/authentication/ .

Таким образом: вы не можете использовать OAuth или маркер доступа StackExchange для аутентификации пользователей.

StackExchange поддерживает протокол OpenID, чтобы облегчить задачу, которую вы ищете, см. https://openid.stackexchange.com недостаток OpenID OpenID-это устаревший протокол, замененный OpenID Connect. OpenID Connect-это протокол аутентификации, который фактически построен поверх OAuth 2.0, но еще не поддерживается StackExchange.

Помочь в развитии проекта:
Закрыть X