![](/img/trans.png)
[英]How do I send data from javascript to python flask back-end?
[英]python flask: pass response from a FB API call to back-end
我正在将JavaScript JavaScript Facebook SDK集成到我的Python Flask Web应用程序中。 我希望能够访问已登录用户的Facebook ID服务器端。
我当前的方法是构建一个包含隐藏输入的表单,该表单存储ID,并在用户登录时提交:
<script>
function sendToBackEnd(){
FB.getLoginStatus(function(response){
if (response.status == 'connected'){
$form = $('<form>', {'action': '/process_form', 'method': 'POST'}).appendTO('body');
FB.api('/me', function(response){
$('<input>', {'class': 'hidden', 'name': 'FB_id', 'value': response.id}).appendTo($form);
});
}
});
}
</script>
<div class="fb-login-button" onlogin="sendToBackEnd"></div>
然后将该ID存储在flask session
对象中:
@app.route('/process', methods=['GET', 'POST'])
def process():
session['FB_id'] = request.form['FB_id']
print("User's Facebook id now accessible across all routes server-side!")
return redirect(url_for('index'))
这里是否有更好的方法,还是提交隐藏表格是将数据从客户端传递到服务器端的唯一方法?
只是想一想...我注意到FB.init()方法中有一个名为cookie
的参数,描述为:“表明是否为会话创建cookie。如果启用,则可以由服务器端代码访问”。 我很确定不能在客户端修改flask会话对象(理应如此),但是也许可以在我的python代码中在服务器端评估这个单独的cookie?
您可以将用户的fb_id设置为会话cookie并在服务器端访问它。 这可以通过fb_id = request.cookies.get('COOKIE_NAME')
登录/注销后决定对烧瓶应用程序使用GET或POST请求。 创建表格完全没有必要,而且过于复杂。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.