Использование API пользователей AppEngine / Go с OAuth: пример кода, рабочий процесс, какая-либо помощь?

Хотя я очень хорошо разбираюсь в среде выполнения AppEngine / Python, я новичок в среде выполнения Go. Мое первое приложение почти готово к развертыванию, но мне все еще нужно предоставить пользователю возможность войти в систему. Я надеюсь использовать OpenID, поскольку я бы предпочел не требовать, чтобы у пользователя был идентификатор Google.

Однако похоже, что рабочих примеров нет или почти нет, и в явной документации AppEngine опущено содержимое функции, которую мне нужно реализовать:

func init() {
    http.HandleFunc("/_ah/login_required", openIdHandler)
}

func openIdHandler(w http.ResponseWriter, r *http.Request) {
    // ...
}

Что входит в openIdHandler func?

Я понимаю, что мне нужно предоставить страницу, которая позволит пользователю выбрать одного из множества поставщиков OpenId и ввести свой идентификатор для этой системы. Я просто не знаю, что мне делать после этого. Что такое рабочий процесс? Кто-нибудь знает какой-либо образец кода, на который я могу взглянуть, чтобы получить общее представление о том, что я должен делать и какие данные я должен обрабатывать? Все мои отточенные гугл-фу ни к чему не привели.

Для ясности: я не собираюсь взаимодействовать с какими-либо услугами, предоставляемыми этими поставщиками OpenId; Я не хочу создавать твиты или Живую ленту. Мне не нужен доступ к контактам, документам, сообщениям на стене или чему-либо еще. Мне просто нужны аутентифицированные учетные данные, которые я могу использовать в своем приложении, чтобы ограничить доступ пользователей только к его или ее собственным данным.

6
задан Adam Crossland 3 November 2011 в 02:30
поделиться