如何使用请求通过flask-security登录到rest api

问题描述 投票:0回答:1

我已禁用CSRF,但无法使用Flask-Security通过基于角色的授权从本地前端服务器登录REST API。我确实进行了登录,但是我认为请求中没有存储cookie,所以我一直在前端服务器上获取登录页面。这是我正在使用的代码:

 payload = {'username': request.form['username'], 'password': request.form['password']}
    with requests.Session() as s:
        r = s.post('http://localhost:5002/login', data=payload)
        print(s.cookies)
        if r.ok:
            r2 = s.get('http://localhost:5002/protected', cookies=s.cookies)

是否有办法维护与登录以显示受保护内容的前端客户端的会话?

python flask flask-restful flask-security
1个回答
1
投票

Flask-Security LoginForm不接受“用户名”-该字段称为“电子邮件”。现在-您可以在该字段中输入用户名,并且如果您已正确配置SECURITY_IDENTITY_ATTRIBUTES-它应该在数据库中查找“用户名”列。

第二-我想指出的是,仅仅因为您使用请求并不意味着您正在发送JSON-实际上,您正在发送表单输入。因此,Flask-Security始终以表单形式进行响应-您基本上不会看到200以外的任何内容-响应主体包含带有各种错误消息的“表单”。

所以-两件事-如果您想要REST-做到这一点-新版本的请求采用参数json =并将做正确的事情。如果您这样做,我相信您将开始获得400份回复。

© www.soinside.com 2019 - 2024. All rights reserved.