Python 记住,这是行不通的
我正在开发一个小型web应用程序。我正在使用谷歌图书馆进行社会认证。另外,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
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散列字段。我只是为了将来实现我自己的登录而加入它。