在AppEngine中验证PubSub推送消息

时间:2016-04-07 12:22:52

标签: google-app-engine google-cloud-pubsub

有没有办法确定应用引擎收到的邮件是否来自Google PubSub服务?目前,PubSub服务在appengine app.yaml中配置为“login:admin”的URL上获得302。所以它一直在重试。

我原本希望它的行为类似于Appengine中的Tasks,并自动验证“login:admin”URL。

1 个答案:

答案 0 :(得分:1)

FAQ建议您在设置PubSub推送订阅时,将共享密钥令牌作为请求参数放在您的处理程序中。

  

如果您还想验证邮件来自Google Cloud Pub / Sub,您可以将端点配置为仅接受带有秘密令牌参数的邮件,例如

     

https://myapp.mydomain.com/myhandler?token=application-secret.

由于PubSub不使用appengine身份验证,并且我们使用令牌进行身份验证,因此您不应在此处理程序的app.yaml条目中指定login密钥。这是一个例子:

<强> main.py

class Handler(webapp2.RequestHandler):

    def post(self):
        token = self.request.params['token']

        if token != 'foo':
            self.abort(401, 'Not authorized')

        # do stuff


app = webapp2.WSGIApplication([
    ('/', Handler),
], debug=True)

<强>的app.yaml

runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /.*
  script: main.app
相关问题