2016-08-06 5 views
0

Ich versuche BCryptAuth zu verwenden, um Ressource sowie für Login-System zu schützen. Ich versuche, nur ein Dokument zu holen, basierend auf der E-Mail-Adresse des Benutzers, die auf der Anmeldeseite eingegeben wurde.Warum find_one alle Dokumente in meinem Fall zurückgibt?

class BCryptAuth(BasicAuth): 
def check_auth(self, email, password, allowed_roles, resource, method): 
    account = app.data.driver.db['users'].find_one({'email': email}) 
    return account and \ 
      bcrypt.hashpw(password.encode('utf-8'),account['salt'].encode('utf-8')) == account['password'] 

Aber wenn ich versuche, den Benutzer Endpunkt über Postbote zuzugreifen, authentifiziert es tatsächlich, aber gibt alle Dokumente zurück. Ich bin ein bisschen verwirrt. Wenn meine Vorgehensweise falsch ist, bitte geben Sie mir eine an.

Antwort

0

Die angegebene Auth-Klasse erlaubt nur den Zugriff auf die API oder nicht. Es macht nichts für die Ressourcenfilterung.

Wenn Sie eine Ressourcenfilterung beim Abrufen von users möchten, können Sie einen Ereignis-Hook erstellen und einen dynamischen Filter vor GET erstellen. Überprüfen Sie die documentation, es sollte helfen.

Verwandte Themen