我的 GAE 应用程序使用 OAUTH 2。目前,我根据是使用 redirect_uri
进行本地测试还是部署到 appspot.com,在 http://localhost:8081/oauth2callback
和 myapp.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/callback
或 http://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/