Я создаю веб-приложение с помощью этой комбинации инструментов. Я аутентифицируюсь с App Engine следующим образом:
class googleLogin(webapp.RequestHandler):
def get(self):
callbackURL = 'http://%s/googleLoginCallback' % getHost()
#Create a client service
gdClient = gdata.docs.service.DocsService()
gdata.alt.appengine.run_on_appengine(gdClient)
gdClient.SetOAuthInputParameters(gdata.auth.OAuthSignatureMethod.HMAC_SHA1,
_GoogleConsumerKey,
consumer_secret=_GoogleConsumerSecret)
#Get a Request Token
requestToken = gdClient.FetchOAuthRequestToken(scopes=_GoogleDataScope,
extra_parameters={'xoauth_displayname': APP_NAME})
#Persist token secret
self.session = Session()
self.session[TOKENSECRETKEY] = requestToken.secret
gdClient.auto_set_current_token = True
gdClient.SetOAuthToken(requestToken)
authUrl = gdClient.GenerateOAuthAuthorizationURL(callback_url=callbackURL)
self.redirect(authUrl)
Я аутентифицировал свой домен с помощью Google на https://www.google.com/accounts/ManageDomain,, введя целевой URL-адрес, и использую данный Ключ / Секрет потребителя. Например, если моим доменом был juno.appspot.com, я использую http://juno.appspot.com в качестве префикса целевого URL-адреса.
Процесс работает; однако Google представляет это сообщение пользователю в желтом окне безопасности:
«Приложение, которое направило вас
здесь претендует быть «хххххх». Мы
не может подтвердить это требование как
приложение работает на вашем компьютере, так как
в отличие от веб-сайта. Мы рекомендуем
что вы отказываете в доступе, если вы не доверяете
приложение. "
Не думаю, что мне следует получать эту ошибку, поскольку мой сервер получает токен запроса и создает URL-адрес авторизации. Кто-нибудь знает, как избавиться от этого предупреждения?
У регистрации домена Google есть возможность загрузить сертификат, но мне не нужно этого делать, потому что я использую OAuth с методом подписи HMAC_SHA1.
Кроме того, это не имеет значения, но я делаю все это через UIWebView на iPhone. Я специально пытаюсь выполнить всю аутентификацию на стороне сервера, чтобы избежать раскрытия моего Consumer Key / Secret.
Спасибо за любые советы:)