gpt4 book ai didi

javascript - 读取 Flask 未设置的 cookie

转载 作者:行者123 更新时间:2023-12-03 03:08:55 24 4
gpt4 key购买 nike

我正在尝试将 Facebook 集成到我的 Flask 应用程序中。 Facebook SDK for JavaScript无缝且非常易于使用。但我在服务器端传递数据时遇到了麻烦(我真正需要的是用户的 Facebook ID)。这是我的准系统 flask 应用程序:

from flask import Flask, render_template, session, request, redirect, url_for

app = Flask(__name__)
app.config['SECRET_KEY'] = '123'

@app.route('/')
def index():
print('cookies', request.cookies)
return render_template('get_fb_cookies.html')

@app.route('/set_key')
def set_key():
session['key'] = 'value'
return redirect(url_for('index'))

if __name__ == '__main__':
app.run(debug=True)

这是我的准系统模板,它允许用户登录/注销(并利用 facebook api 的各个其他部分)客户端:

<!doctype html>
<html lang="en">
<body>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '<app-id>',
cookies : true,
version : 'v2.10' // use graph api version 2.10
});
FB.getLoginStatus(function(response) {
statusChangeCallback(response);
});
};

// Load the SDK asynchronously
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js"; // minified version version
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

// This is called with the results from from FB.getLoginStatus().
function statusChangeCallback(response) {
if (response.status === 'connected') {
FB.api('/me', function(response){
console.log('Successful login for: ' + response.name);
console.log('ID: ' + response.id)
});
} else {
console.log('Not connected.')
}
};
</script>

<div id="fb-root"></div>
<h1>Get Facebook Cookies</h1>
<div class="fb-login-button" data-max-rows="1" data-size="medium" data-button-type="login_with" data-show-faces="false" data-auto-logout-link="true"></div>

</body>
</html>

阅读本文 SO question ,看来我需要访问 cookie 服务器端,但 request.cookies 只是给我由 flask.session 设置的 cookie。也许我需要更改 cookie facebook 设置的。目前大约有 10 个设置为 .facebook.com。我想我需要将它们设置为localhost(或者我的服务器正在运行的任何地方)。

这是否可行,或者我是否需要考虑采用不同的方法来访问用户的 Facebook ID 服务器端?

最佳答案

我建议不要通过尝试更改域来污染 FB 的 cookie,而是在 statusChangeCallback 中对 Flask 应用使用 GET 或 POST 请求

关于javascript - 读取 Flask 未设置的 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47027951/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com