我的 GAE 应用程序使用 OAUTH 2。目前,我根据是使用 redirect_uri 进行本地测试还是部署到 appspot.com,在 http://localhost:8081/oauth2callbackmyapp.appspot.com/oauth2callback 之间手动切换 dev_appserver

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

谢谢!

最佳答案

您可以使用 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。

你的 route 有这样的事情。
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/callbackhttp://app-id.appspot.com/oauth/callback 的东西。

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

关于python - GAE : python code to check if i'm on dev_appserver or deployed to appspot,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15741711/

10-12 22:42