Verilerini tamamen harici bir kaynaktan alan (HTTP aracılığıyla sorgulanan) bir Django uygulamasına sahibim. Yani, yerel bir veritabanı için seçeneğim yok. Oturum verileri önbellekte saklanır (geliştirme sunucumda bir SQLite veritabanı kullanıyorum, bu yüzden herhangi bir hata kaynağı yok). Ben kanama kenarı Django 1.1svn kullanıyorum.Django kullanıcıları ve dış kaynaktan kimlik doğrulama
Sorun girin: Kullanıcılar için Django'nun kendi kimlik doğrulama sistemini kullanmak istiyorum.
Kendi Kimlik Doğrulama Geri Bildirimi yazmak oldukça basit görünüyor, ancak her zaman, kullanıcıları kaydetmek için yerel bir veritabanınızın olması şartıyla. Veritabanı olmadan benim temel sorun sebat.
I (datasource.get()
dict çeşit döndüren bir fonksiyon olduğunu varsayalım) Aşağıdaki ile denedim:
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
Ama MyUser üzerinde kasıtlı eksik save()
yöntem oturum açma oturum depolamasını kırmak gibi görünüyor.
Yerel veritabanı olmadan nasıl MyUser
nasıl görünmeli?
Bağlantı bozuk bir şekilde devam ediyor '>' ... darn. – Boldewyn