Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tornado与Facebook注册插件_Facebook_Tornado - Fatal编程技术网

Tornado与Facebook注册插件

Tornado与Facebook注册插件,facebook,tornado,Facebook,Tornado,Facebook在这里发布了一个注册插件 几周前 我想知道我们如何用龙卷风来实现这一点 我一直收到一个错误:403 POST/auth/fbform(127.0.0.1):“\u xsrf”参数在POST中丢失 重定向url为 代码如下: class FBFormLoginHandler(BaseHandler, tornado.web.RequestHandler): def get(self): print "i'm in GET" print sel

Facebook在这里发布了一个注册插件 几周前

我想知道我们如何用龙卷风来实现这一点

我一直收到一个错误:403 POST/auth/fbform(127.0.0.1):“\u xsrf”参数在POST中丢失

重定向url为 代码如下:

class FBFormLoginHandler(BaseHandler, tornado.web.RequestHandler):
    def get(self):
        print "i'm in GET"
        print self.request
        # parse and check data
        data = _parse_signed_request(self.request['_xsrf'], "XXXXX")
        return
    def post(self):
        print "i'm in POST"
        print self.request
        # parse and check data
        data = _parse_signed_request(self.request['_xsrf'], "XXXXX")
        return

    def _parse_signed_request(signed_request, app_secret):
        print "hello in parse_signed_request"
        try:
          l = signed_request.split('.', 2)
          encoded_sig = str(l[0])
          payload = str(l[1])
        except IndexError:
          raise ValueError("'signed_request' malformed")

        sig = base64.urlsafe_b64decode(encoded_sig + "=" * ((4 - len(encoded_sig) % 4) % 4))
        data = base64.urlsafe_b64decode(payload + "=" * ((4 - len(payload) % 4) % 4))

        data = json.loads(data)

        if data.get('algorithm').upper() != 'HMAC-SHA256':
          raise ValueError("'signed_request' is using an unknown algorithm")
        else:
          expected_sig = hmac.new(app_secret, msg=payload, digestmod=hashlib.sha256).digest()

        if sig != expected_sig:
          raise ValueError("'signed_request' signature mismatch")
        else:
          return data
我不明白错误消息所说的是哪篇文章,所以 我尝试使用get和post函数中的_parse_signed_请求

请开导我。 顺便说一下,我现在正在本地电脑上工作


致以最诚挚的问候。

您必须禁用该端点上的CSRF检查,因为请求来自Facebook,而不是您自己的站点

龙卷风已经来袭。用这个你可以省去大部分头痛。