[英]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.