4

我的 GAE 应用程序使用 OAUTH 2。目前,我手动切换redirect_urihttp://localhost:8081/oauth2callbackmyapp.appspot.com/oauth2callback取决于是否使用本地测试dev_appserver或部署到 appspot.com。

是否有一些代码(例如 using os.environ)可以用来自动执行此操作?

谢谢!

4

1 回答 1

6

您可以使用os.environ['SERVER_NAME'].

您也可以通过版本名称检查:

import os
if os.environ['APPLICATION_ID'].startswith('dev'):
  pass  # it's localhost
else:
  pass  # it's uploaded on gae

如果您使用 webapp2,将更好地self.uri_for('callback-uri-name', _full=True)用于构建回调 uri。

你的路线中有这样的东西。

app = webapp2.WSGIApplication([
    webapp2.Route(r'/oauth/callback', handler='oauth.CallbackHandler', name='callback-uri-name'),
])

然后,如果你打电话self.uri_for('callback-uri-name', _full=True),你会得到类似http://localhost:8080/oauth/callbackor的东西http://app-id.appspot.com/oauth/callback

更多信息:http ://webapp-improved.appspot.com/guide/routing.html#building-uris

于 2013-04-01T10:38:59.433 回答