Flask 从OpenID连接提供程序回调重定向后,无法访问当前\u用户

Flask 从OpenID连接提供程序回调重定向后,无法访问当前\u用户,flask,flask-login,Flask,Flask Login,我正在使用openID提供程序对flask应用程序的用户进行身份验证。在身份验证网站上进行身份验证后,提供商向我的回调端点发送一个id_令牌,作为POST请求携带用户信息 我解码这个令牌,创建用户对象并将其保存在缓存中。保存用户后,用户使用flask\u login.login\u user()登录。该函数将重定向到主页 @app.route("/opentoken", methods=['POST']) def openid_callback(): token = request.fo

我正在使用openID提供程序对flask应用程序的用户进行身份验证。在身份验证网站上进行身份验证后,提供商向我的回调端点发送一个id_令牌,作为
POST
请求携带用户信息

我解码这个令牌,创建用户对象并将其保存在缓存中。保存用户后,用户使用
flask\u login.login\u user()登录。
该函数将重定向到主页

@app.route("/opentoken", methods=['POST'])
def openid_callback():
    token = request.form['id_token']
    decoded_token = jwt.decode(token, verify=False)
    preferred_username = decoded_token['preferred_username']
    user = save_user(preferred_username, decoded_token)
    login_user(user)
    log.info(current_user) #That confirms the current_user has the user info
    return redirect('/home')
预期的行为是,在重定向时,主端点将可以访问
flask\u login.current\u user
。这应该发生,因为flask登录集成应该使flask在每次请求之前调用此函数

@app.login_manager.user_loader
def load_user(_id):
  try:
    user = users[_id]
    return user
  except KeyError:
    return None
然而,实际的行为是不同的。重定向后,被调用的端点
/home
无法访问
当前用户

@home_bp.route('/home')
def home():
    print(f"Current User: {current_user}") #This returns that the user is AnonymousMixin
    return render_template(....)
然而,如果页面被刷新(直接调用端点),它能够选择
当前用户
,并打印登录用户的信息

换句话说,在重定向时,不会调用
login\u manager.user\u loader
flask login回调,但直接调用端点时会像往常一样调用它

我不确定我是否遗漏或误解了某些内容,或者是否存在导致这种行为的特殊错误