我目前有一个单租户eve应用程序,该应用程序运行良好,但希望使其成为多租户。也就是说,我想允许多个用户登录,每个用户都获得一个完全独立的数据库(或不同的表?)。
我查看了flask-login来管理用户登录(和注册),但是我不清楚如何将其集成到现有的eve应用程序中,以便每个用户都有一个不同的数据库。
http://python-eve.org/authentication.html#auth-driven-database-access的夏娃文档具有以下示例。
from eve.auth import BasicAuth
class MyBasicAuth(BasicAuth):
def check_auth(self, username, password, allowed_roles, resource, method):
if username == 'user1':
self.set_mongo_prefix('MONGO1')
elif username == 'user2':
self.set_mongo_prefix('MONGO2')
else:
# serve all other users from the default db.
self.set_mongo_prefix(None)
return username is not None and password == 'secret'
app = Eve(auth=MyBasicAuth)
app.run()
但是,这假设MONGO1和MONGO2是在我的settings.py中静态定义的。有没有一种方法可以为在我的应用程序中注册的每个用户动态创建一个新数据库?
预先感谢, 基思