reactjs - 如何防止 flask_login 中的 current_user 被重置?
问题描述
我正在使用烧瓶应用程序作为我的反应前端的后端服务器。在烧瓶应用程序中,我已经设置了 LoginManager(app) 并且@login_manager.user_loader
根据烧瓶文档进行了所有设置。通过打印声明,我确保声明current_user.is_authenticated
之后是正确的login_user(user, remember=True)
。
但是,当我current_user.is_authenticated
在不同的路线上检查时,这是错误的。我该如何解决这个问题?有关系CORS(app)
吗?如果是这样,我如何为 CORS 设置 flask_login ?
#__init__.py
...
app = Flask(__name__)
CORS(app)
login_manager = LoginManager(app)
登录发生如下:
# users.py
@app.route('/auth/login', methods=['GET', 'POST'])
def login():
username = request.json.get('username')
password = request.json.get('password')
userObj = {}
if verify_password(username, password):
user =User.query.filter_by(username=username).first()
login_user(user, remember=True)
userObj ={"uid":user.id, "username": user.username, "email": user.email}
return jsonify({"loggedin":current_user.is_authenticated, "user":userObj})
然后我尝试在发回章节列表之前验证 current_user 是否经过身份验证。
# lists.py
from flask_login import current_user as curUser
@app.route('/get_chaptersList', methods=['GET'])
def chaptersList():
# Access Checks
print("curUser:",curUser.get_id(), curUser.is_authenticated)
if not curUser.is_authenticated:
return jsonify({ 'list': [], 'restricted':True, 'msg': 'Login required' })
我从上述函数curUser: None False得到的输出,当我在控制台中检查响应时,它总是 { 'list': [], 'restricted':True, 'msg': 'Login required' }
我正在尝试使用烧瓶作为后端来对前端做出反应。为了验证用户身份,我使用了 flask_login。在 package.json 中将 react 的代理值设置为“localhost:5000”的情况下,一切正常。但是为了生产,我避免使用代理并在 fetch 调用中使用整个 url,比如fetch('http://localhost:5000/auth/login', userObj)
. 当我这样做时,flask 无法记住用户或保持用户登录以进行下一次 api 调用。我试图打印 current_user.is_authenticated 并在下一次 fetch 调用时输出 False。我该如何处理?
解决方案
推荐阅读
- python - Pandas 和 JSON ValueError:数组的长度必须相同
- java - 由于临时原因,SMTP 不可用
- javascript - 无法从 Fetch api 和 JSON 解析数据
- .net - 从构建或发布管道在 azure devops 中发布 nuget 包
- c# - 当 streamwriter 语句使用 void 和 int 时,如何解决布尔错误?
- algorithm - 任何关于具有完美信息的有限二部图游戏的游戏/图论?
- angular - 有没有办法在 Angular 7 中为模板 html 属性 *key* 使用变量?
- java - 如何使用eclipse在java中打印带下划线的字符串
- go - httputil.NewSingleHostReverseProxy 调用会增加内存使用量
- python-3.x - 从 Tkinter 中的回调函数中检索信息