GITkit "Account Chooser" Вопросы - PullRequest
       22

GITkit "Account Chooser" Вопросы

2 голосов
/ 12 декабря 2011

Кто-нибудь успешно внедрил Google Identity Toolkit , реализацию Выбор аккаунта .Я выполнил начальные шаги здесь, но у меня все еще есть несколько вопросов, так как я не совсем знаю, как обрабатывать весь поток данных.Я использую Clojure / Compojure в серверной части:

A) не совсем понимаюкак аутентификация провайдера идентификаторов вписывается в мою модель данных

  • при реализации callbackURL, какие данные мне следует ожидать и как это состояние сеанса управляется GITkit (и всеми средствами выбора учетной записи)

B) Есть ли способ настроить 'callbackURL' для разработки.

  • поставщику удостоверений потребуется URL-адрес, на который он может перенаправить обратно

C) Как рабочий процесс GITkit / Account Chooser позволяет моим пользователям зарегистрировать учетную запись, которая является родной длямое приложение?

Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 14 декабря 2011

Вопросы не совсем понятны, но я реализовал GITkit в ruby ​​ и может дать вам несколько указателей.

A) URL обратного вызова - это то, что обрабатываетутверждение от провайдеров идентификации.Rightnow GITKit выполняет только OpenID, поэтому URL будет содержать ответ OpenID либо в параметрах запроса, либо в виде тела POST.Вам нужно будет сделать несколько вещей: 1) Вызвать verifyAssertion в gitkit API и передать params / post body.Это вернет JSON-ответ, содержащий сведения о пользователе (при условии, что утверждение верно).Есть и другие проверки, которые вы должны сделать также 2) Решите, что делать с утверждением.Если это уже существующий пользователь, скорее всего, вы просто установите сеанс и сохраните идентификатор пользователя.Если это новый пользователь, вы можете либо создать новую учетную запись и немедленно начать сеанс, либо отложить ее и перенаправить на страницу регистрации.3) Рендеринг HTML / JS для уведомления виджета.Существуют различные коды состояния и данные, которые вы можете вернуть, которые изменяют поток.

Сам GITKit на самом деле не управляет состоянием сеанса, это зависит от вашего приложения.В некоторых ссылочных реализациях есть код для помощи, но он не является частью API.У виджета действительно есть состояние, которым вы можете управлять с помощью JS (добавить учетную запись, показать как вход в систему и т. Д.), И оно использует локальное хранилище в браузере.

В документах приведены некоторые подробности и пример.код для того, как это должно быть реализовано.

B) Конечно.URL-адрес только что настроен в виджете JavaScript, когда вы вызываете setConfig (). Он может быть установлен на localhost или любой промежуточный сервер для разработки.Пока ваш браузер может получить доступ к нему, все в порядке.

C) Под "нативным" я предполагаю, что вы имеете в виду, что они регистрируются только с помощью имени пользователя / пароля вместо использования IDP.Если это так, пользователь просто должен ввести свой адрес электронной почты при входе в систему. Если этот адрес электронной почты соответствует известному IDP, он попытается пройти аутентификацию с OpenID, в противном случае, если это новый пользователь, он перенаправит на любую страницу регистрации, которую вы настроили ввиджет.Эта страница регистрации просто попросит пользователя создать пароль, как вы это обычно делаете.Вы также должны указать, являются ли учетные записи «устаревшими» (парольными) учетными записями в проверках userStatus.

Надеюсь, это поможет.

1 голос
/ 20 декабря 2011

Для дальнейшего использования.Я был в состоянии решить проблему.Вы можете следить за этой темой , как это делается в Clojure.

Я работал с Ring / Compojure, и другой парень показал мне свое решение в Webnoir.

HTH

...