私は外部ソースから完全にデータを取得するDjangoアプリを持っています(HTTP経由で照会)。つまり、私はローカルデータベースのオプションを持っていません。セッションデータはキャッシュに保存されます(私の開発サーバーではSQLiteデータベースを使用しているため、エラーソースはありません)。私は出血エッジDjango 1.1svnを使用しています。Djangoユーザーと外部ソースからの認証
問題を入力してください:ユーザーにDjango独自の認証システムを使用します。
自分の認証バックエンドを作成するのは簡単ですが、ユーザーを保存するローカルデータベースがあるという条件の下では常にそうです。データベースがなければ私の主な問題は永続性です。
私は(datasource.get()
は辞書のいくつかの種類を返す関数であると仮定)次でそれを試してみました:
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 save (self):
return None
しかしMyUserとの意図的に欠落しているsave()
方法は、ログインのセッションストレージを破るようです。
MyUser
はローカルデータベースなしでどのように見えるのですか?
は は私がやりたいようです。私が評価したら、私は答えを投稿します(あなた自身を追加することをお勧めしません;-))。 –
Boldewyn
リンクには、「>」というダンがあります。 – Boldewyn