我的 GAE 应用使用 OAUTH 2。目前,我在 http://localhost:8081/oauth2callback
和 myapp.appspot.com 之间手动切换
取决于是使用 redirect_uri
/oauth2callbackdev_appserver
进行本地测试还是部署到 appspot.com。
是否有一些代码(例如使用 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/