4
我想限制ajax调用只为登录用户。典型的用例是张贴博客,只有登录用户可以提交帖子,否则用户应该被重定向到/登录端点。我正在使用安全瓶。我可以通过不使用ajax来做同样的事情。 任何人都可以建议我如何实现这样的功能。只限于在Flask中登录的用户限制ajax调用
我想限制ajax调用只为登录用户。典型的用例是张贴博客,只有登录用户可以提交帖子,否则用户应该被重定向到/登录端点。我正在使用安全瓶。我可以通过不使用ajax来做同样的事情。 任何人都可以建议我如何实现这样的功能。只限于在Flask中登录的用户限制ajax调用
假设你想从/ AJAX这样让您的数据:
$.getJSON("/ajax", function(data){
...
});
简单地保护这条路线在的init的.py与login_required装饰:
from flask.ext.security import login_required
@app.route('/ajax')
@login_required
def ajax():
data = get_data() # Get your data
return json.dumps(data)
或者你也可以这样做:
from flask.ext.security import current_user
@app.route('/ajax')
def ajax():
if current_user.is_authenticated:
data = get_data() # Get your data
return json.dumps(data)
else:
return 'Not allowed'
在后端的Ajax处理方法中,检查用户是否登录。如果不是,则返回自定义消息或代码。检查JS中的内容,并根据需要重定向到一个页面。 – Celeo
因此,我需要将user_id传递给每个后端请求以确定此用户是否已登录 –
还指出,您可能需要检查请求是否为AJAX,如果是,请返回401与重定向(301),视情况而定关于如何处理事情,您可能会以您的ajax请求获取登录html作为其答案 – Foon