Python 记住,这是行不通的

Python 记住,这是行不通的,python,cookies,flask,flask-login,flask-oauthlib,Python,Cookies,Flask,Flask Login,Flask Oauthlib,我正在开发一个小型web应用程序。我正在使用谷歌图书馆进行社会认证。另外,Flask登录。我已成功设置授权回调并授权用户。我也可以使用login\u user(user,memory=True)成功登录用户 这将创建一个名为记住\u令牌的cookie,过期时间为365天。但是,当我关闭浏览器(Firefox、Chrome)和重新打开应用程序时,就会出现问题 使用Firefox中的Tools->Privacy->Remove Individual cookie,我可以看到memory\u令牌coo

我正在开发一个小型web应用程序。我正在使用谷歌图书馆进行社会认证。另外,
Flask登录
。我已成功设置授权回调并授权用户。我也可以使用
login\u user(user,memory=True)
成功登录用户

这将创建一个名为
记住\u令牌
的cookie,过期时间为365天。但是,当我关闭浏览器(Firefox、Chrome)和重新打开应用程序时,就会出现问题

使用Firefox中的
Tools->Privacy->Remove Individual cookie
,我可以看到memory\u令牌cookie。但是,当我导航到索引页
/
时,我已经设置了此功能

@main.route('/', methods=['GET', 'POST'])
def index():
    if current_user.is_authenticated:
        print_debug('User is authenticated in /')
        return redirect(url_for('.home'))
    else:
        return render_template('index.html')

@main.route('/home', methods=['GET', 'POST'])
@login_required
def home():
    do_something()
导航到
/
会打印调试信息,并成功重定向到
/home
。但是,此重定向被
@login\u required
截获,我被重定向到
/google login?next=%2Fhome
要求我再次登录。此外,在此阶段还将删除
记住\u标记。我在Firefox中检查后确认它

我不明白为什么记忆功能不能正常工作。或者删除
记住\u标记的原因。我不会在两者之间做任何事。循序渐进

  • 我最初登录。在浏览器未关闭之前,一切正常。所有
    @login\u都需要
    的工作
    
  • 当我关闭浏览器并重新打开时,直到我没有在
    localhost:5000
    仍有一个cookie名称
    记住\u标记
  • 我一打开,第一个
    当前用户就返回
    /
    上的
    身份验证
    从这一点开始,每个@login_要求
    重新登录
我正在使用Flask sqlalchemy和MySQL作为数据库。我的用户模型是

class User(UserMixin, db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    password_hash = db.Column(db.String(128))
    username = db.Column(db.String(128), unique=True, index=True)
我的用户加载程序

@login_manager.user_loader
def load_user(user_id):
    print_debug("User loader called with id %s" % user_id)
    return User.query.get(int(user_id))
任何帮助都将不胜感激


谢谢

您使用的是哪个版本的
flask login
,您可以展示您的用户加载程序功能吗?所以您有两种登录方式:数据库和OAuth?如果是,两种登录方法的行为是否不同?否。我只使用Oauth。到目前为止,我没有使用表的password\u散列字段。我只是为了将来实现我自己的登录而加入它。