我有一个Django应用程序,它完全从外部源(通过HTTP查询)获取数据.也就是说,我没有本地数据库的选项.会话数据存储在缓存中(在我的开发服务器上,我使用SQLite数据库,因此这不是错误源).我正在使用前沿的Django 1.1svn.
输入问题:我想为用户使用Django自己的身份验证系统.
编写我自己的身份验证后端似乎很简单,但总是在你有一个本地数据库保存用户的条件下.没有数据库我的主要问题是持久性.
我尝试了以下(假设这datasource.get()
是一个返回某种dict的函数):
class ModelBackend (object):
"""Login backend."""
def authenticate (self, username=None, password=None):
"""Check, if a given user/password combination is valid"""
data = datasource.get ('login', username, password)
if data and data['ok']:
return MyUser (username=username)
else:
raise TypeError
return None
def get_user (self, username):
"""get data about a specific user"""
try:
data = datasource.get ('userdata', username)
if data and data['ok']:
return data.user
except:
pass
return None
class MyUser (User):
"""Django user who isn't saved in DB"""
def …
Run Code Online (Sandbox Code Playgroud)