如何在flask安全mongoengine应用程序中确认create_user创建的用户?

Dav*_*son 4 python mongodb mongoengine flask flask-security

我有一个使用mongoengine烧瓶安全的python烧瓶应用程序,从示例中构建,以暴露所有的确认,注册,跟踪和恢复功能.

一切都有效,除了用户在代码中使用以下命令创建:

MongoEngineUserDatastore.create_user(...)
Run Code Online (Sandbox Code Playgroud)

无法登录.也就是说,当您尝试使用此用户登录时,您会收到一条错误消息:

"Email requires confirmation"
Run Code Online (Sandbox Code Playgroud)

由于尚未发送带有散列URL的电子邮件,因此无法确认.是否有一个参数我可以通过某处传递来确认创建此用户或在某处设置确认标志?

是我的代码:

Dav*_*son 5

我通过确认新注册的用户并检查mongodb以查看添加了哪些字段来弄明白.事实证明,确认所需的字段是confirmed_at,它必须具有日期时间,因此:

import datetime

# Create a user to test with
@app.before_first_request
def create_user():
    user_datastore.create_user(
        email='me@mydomain.com',
        password=utils.encrypt_password('password'),
        confirmed_at=datetime.datetime.now())
Run Code Online (Sandbox Code Playgroud)

我在这里更新了要点:

https://gist.github.com/davidthewatson/327776905ef30815c138