python oauth 2.0新的fbsr facebook cookie,验证验证码时出错

2024-01-18

我正在尝试使用新的 fbsr_{{appID}} cookie。

我使用以下函数来解析它,但是当我随后尝试获取 access_token 时,我收到“验证验证码时出错”消息。这些解析函数有问题吗?如果不是,可能是什么问题?

更多信息: 我设法使用 oauth 链接在没有 cookie 的情况下登录用户,该链接使用代码作为参数重定向回我的网站,因此它不能是应用程序 id、应用程序密钥或redirect_uri。另一个原因是它们有不同的错误消息。

def base64_url_decode(inp):
    padding_factor = (4 - len(inp) % 4) % 4
    inp += "="*padding_factor 
    return base64.b64decode(unicode(inp).translate(dict(zip(map(ord, u'-_'), u'+/'))))

def parse_signed_request(signed_request, secret):

    l = signed_request.split('.', 2)
    encoded_sig = l[0]
    payload = l[1]

    sig = base64_url_decode(encoded_sig)
    data = json.loads(base64_url_decode(payload))

    if data.get('algorithm').upper() != 'HMAC-SHA256':
        logging.error('Unknown algorithm')
        return None
    else:
        expected_sig = hmac.new(secret, msg=payload, digestmod=hashlib.sha256).digest()

    if sig != expected_sig:
        return None
    else:
        logging.debug('valid signed request received..')
        return data

args = {}
args['client_id'] = fbapp_id
args['redirect_uri'] = site_url 
args['client_secret'] = fbapp_secret
args['code'] = code
response = urllib.urlopen('https://graph.facebook.com/oauth/access_token?'+urllib.urlencode(args))
# ... here i'm getting the error back from the server: error validating verification code...

facebook python SDK 有一个修改版本,支持 OAuth 2.0 并解析 github 上的 fbsr_ cookie:

https://gist.github.com/1190267 https://gist.github.com/1190267

您可以查看代码以了解如何解析 cookie,或者只是让该文件为您完成工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python oauth 2.0新的fbsr facebook cookie,验证验证码时出错 的相关文章

随机推荐