4

我有一个使用mongoengine和从示例中构建的flask-security的 python 烧瓶应用程序,以公开所有确认、注册、跟踪和恢复功能。

一切正常,除了用户在代码中使用命令式创建:

MongoEngineUserDatastore.create_user(...)

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

"Email requires confirmation"

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

是我的代码:

4

2 回答 2

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())

我在这里更新了要点:

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

于 2013-03-06T18:30:11.910 回答
1

创建测试用户时,您需要使它们处于活动状态,例如:

@app.before_first_request
def create_user():
    user_datastore.create_user(
        email='me@mydomain.com', 
        password=utils.encrypt_password('password'),
        active=True)
于 2013-03-06T11:27:59.087 回答