Flask-Login哪个类的用户处于活动状态

时间:2014-10-13 14:38:03

标签: python flask flask-login

你好我有两个用户类和ProductOwner 他们可以通过Flask-Login登录 但是当您登录并且浏览器重新访问('/')页面时,我无法将它们重定向到用户或Productowner页面,因为我不知道登录用户。如果它属于User类或ProductOwner类。我认为它使用cookie自动登录。

起初我认为它会在每次加载时运行@ lm.user_loader。但似乎不是。

@lm.user_loader
def load_user(id):
    if id[0] == "u":
        session['current']='u'
        return User.query.get(int(id[1:]))
    if id[0] == "b":
        session['current']='b'
        return ProductOwner.query.get(int(id[1:])) 

如果您在未注销的情况下重新访问该页面,我认为它没有在代码上运行。 因为据我所知

@app.route('/')
def index():
    if current_user.is_authenticated():
        if session['current']=='b':
            return render_template('b_loggedin.html')
        elif session['current']=='u':
            return render_template('userloggedin.html')
    return render_template('index.html')

返回index.html

谢谢

2 个答案:

答案 0 :(得分:0)

简短回答是从User继承您的ProductOwnerflask.ext.login.UserMixin,请阅读更多here

但是如果你想拥有一个更好的代码,你需要动态制作。依靠你身份证的一部分来识别用户类型而在另一部分上识别用户ID是一种不好的做法,将来会给你带来更多麻烦。

答案 1 :(得分:0)

谢谢Mehdi。我使用is_authenticated方法解决了我的问题,正如Mehdi所述。我在is_authenticated方法中添加了代码。

非常感谢。