【发布时间】:2018-05-11 01:33:39
【问题描述】:
我目前正在使用flask-security,我正在考虑将其更改为flask-user,主要用于'USER_REQUIRE_INVITATION'功能,因为我不想编写邀请系统。
烧瓶用户==0.6.21
数据库结构看起来很相似,所以它看起来是一个替代品。
其中之一是烧瓶用户使用 int 作为用户 ID,而对于烧瓶安全,我使用了 uuid。 这会导致错误:
ValueError: invalid literal for int() with base 10: '29d726e2-e160-4cbc-b0d8-befeca8bdeb6'
这是由于 uuid 被强制转换为 int(在烧瓶用户代码库中)。
def setup_login_manager(self, app):
# Flask-Login calls this function to retrieve a User record by user ID.
# Note: user_id is a UNICODE string returned by UserMixin.get_id().
# See https://flask-login.readthedocs.org/en/latest/#how-it-works
@self.login_manager.user_loader
def load_user_by_id(user_unicode_id):
user_id = int(user_unicode_id)
#print('load_user_by_id: user_id=', user_id)
return self.get_user_by_id(user_id)
我更喜欢使用 uuid vs 和 int。 有什么好的方法可以使用 uuid 的 flask-user 吗?
编辑:我正在为 uuid 使用文本
id = db.Column(
'id', db.Text(), default=lambda: str(uuid.uuid4()), primary_key=True)
【问题讨论】:
-
Flask-User 的primary keys 部分表示可以是字符串。
-
谢谢,但这是针对“alpha”中的 v1.0。
标签: flask flask-login