我的GAE应用使用OAUTH 2.目前,我在redirect_uri
和http://localhost:8081/oauth2callback
之间手动切换myapp.appspot.com/oauth2callback
,具体取决于是使用dev_appserver
进行本地测试还是部署到os.environ
appspot.com。
是否有一些代码(例如使用{{1}})可用于自动执行此操作?
谢谢!
答案 0 :(得分: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/callback
或http://app-id.appspot.com/oauth/callback
的内容。
有关详细信息:http://webapp-improved.appspot.com/guide/routing.html#building-uris