2010-11-28 3 views
3

Мое приложение извлекает информацию из календаря Google моих пользователей. Пользователям уже нужно подключиться к моему приложению, поэтому они находят, что им нужно «предоставлять доступ» к своей учетной записи google хотя бы один раз за сеанс (в настоящее время используется OAuth).Как получить постоянный доступ к учетной записи пользователя Google?

Есть ли способ получить постоянный (или ближе к нему) грант?

Я даже открыт для использования openID в качестве моей первичной аутентификации. Это поможет?

Я считаю, что API GData предлагает протокол ClientLogin, который потребует от меня хранить информацию для входа пользователя, и мне это не нравится, хотя, если это произойдет, я полагаю, что это лучше, чем альтернатива.

ответ

3

oAuth токены, сгенерированные один раз, не истекают EVER, если пользователь/приложение не отменяют их. Просто возьмите маркер доступа и получите доступ к секретному токену один раз в первый раз, когда пользователь регистрируется в вашем приложении. Храните его локально и используйте его для запроса GDATA Api, когда вам нужно.

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

2

Поскольку вы используете OAuth, я понимаю, что ваше приложение является веб-приложением? Ну, OAuth - причина, по которой у вас возникла проблема, которую вы описываете, что не является проблемой, а особенностью API. См., Соединения OAuth имеют цифровую подпись, поэтому каждый раз, когда пользователь пытается войти в систему, они перенаправляются на страницу OAuthAuthorizeToken.

Для решения ваших проблем используйте AuthSub вместо OAuth. Он менее безопасен, но более удобен. Также он позволяет вашему приложению просто получать токен, говорящий о том, что пользователь был проверен Goodle, поэтому вам не нужно было бы НИКОГДА хранить информацию о ваших пользователях таким образом.

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

1

Существует Oauth/OpenID hybrid solution (см source) - в основном, спросите вы наверняка сферы доступа, получить основные данные пользователя и идентификатор запроса в ответе, то обменять его на токен аутентификации и сохраните его для дальнейшего использования.

Смежные вопросы