python – 仅限于在Flask中登录用户的ajax调用

我试图将ajax呼叫限制为仅登录用户.典型用例是发布博客,只有登录用户才能提交帖子,否则用户应该被重定向到/ login端点.我正在使用烧瓶安全性.我可以通过不使用ajax来做同样的事情.

任何人都可以建议我如何实现这样的功能. 最佳答案 假设您尝试从/ ajax获取数据,如下所示:

$.getJSON("/ajax", function(data){
    ...
});

只需使用login_required装饰器保护init.py中的路由:

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'
点赞