Хотя у меня очень большой опыт работы со средой исполнения AppEngine / Python, я новичок в среде исполнения Go. Мое первое приложение почти готово к развертыванию, но мне все еще нужно предоставить пользователю возможность войти в систему. Я надеюсь использовать OpenID, так как я бы не хотел, чтобы у пользователя был Google Id.
Однако, похоже, что там нет или почти нет рабочих примеров, и в простоте документации AppEngine пропущено содержание функции, которую мне нужно реализовать:
func init() {
http.HandleFunc("/_ah/login_required", openIdHandler)
}
func openIdHandler(w http.ResponseWriter, r *http.Request) {
// ...
}
Что входит в openIdHandler
функцию?
Я понимаю, что мне нужно предоставить страницу, которая позволит пользователю выбрать одного из множества поставщиков OpenId и ввести свой Id для этой системы. Я просто не знаю, что делать после этого. Каков рабочий процесс? Кто-нибудь знает какой-нибудь пример кода, на который я могу посмотреть, чтобы получить общее представление о том, что я должен делать и с какими данными я должен обрабатывать? Все мои отточенные гугл-фу ни к чему меня не привели.
Для ясности, я не собираюсь взаимодействовать с какими-либо услугами, предоставляемыми этими поставщиками OpenId; Я не хочу создавать твиты или Buzz. Я не хочу получать доступ к контактам, документам, сообщениям на стене или чему-либо еще. Я просто хотел иметь аутентифицированные учетные данные, которые я могу использовать внутри своего приложения, чтобы ограничить доступ пользователей только к его или ее собственным данным.