Какие шаги должен выполнить простой сервер http C ++, чтобы позволить пользователю войти в систему с помощью аутентификации OpenID? - PullRequest
10 голосов
/ 21 июля 2011

Я создал простой сервер, принимающий запросы tcp и http и анализирующий их в C ++.Теперь я хочу создать систему входа в систему openID, которая будет поддерживать Google Open ID.Я использую boost и Curl на моем сервере.В настоящее время у меня нет ssh на моем сервере, кроме curl может делать ssh-запросы.

Итак, что у меня есть:

  • html разбор / публикация запросов на карты map<string, string>
  • curl с поддержкой ssh ​​
  • fileвозвращение функциональности сервера (с измененными аргументами ответа)

Что еще я должен реализовать для поддержки возможности входа в Google OpenID?(Мне нужен только какой-то базовый уникальный идентификатор от пользователя, а не его имя или какие-либо другие данные)

Каковы будут мои шаги для получения уникального идентификатора пользователя на сервере, который получил запрос с чем-то вроде openIdLogin: https://www.google.com/accounts/o8/id в нем?

Мне нужны простые, удобочитаемые инструкции, как когда-то предоставленные google для reCAPTCHA Проверка ответа пользователя без плагинов - куда должен быть перенаправлен пользователь, что должно быть вЗапрос, ответ и т. Д. (Не чисто Спецификации )

Ответы [ 2 ]

6 голосов
/ 02 сентября 2011

Из открытого идентификатора вики

http://enthusiasm.cozy.org/archives/2005/05/openid-part-iii-pingpong

Open ID Flow Diagram

или из собственного документа Google

http://code.google.com/apis/accounts/docs/OpenID.html#Interaction

Open ID Flow Diagram

4 голосов
/ 01 сентября 2011

То, что вы ищете, это федеративный логин Google . В основном это означает отправку некоторых URL-запросов на серверы Google и предоставление URL-адреса обратного вызова, на который пользователь должен вернуться после входа в систему на серверах Google.

В нижней части страницы приведены примеры запросов и ответов, которые должны помочь вам начать работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...