2014-05-11 15 views

Antwort

27

Wenn Sie sich einloggen ein user (Modell User Entwickeln Name), ein Schlüssel "warden.user.model_name.key" ist in Ihrem Fall geschaffen, die "warden.user.user.key" ist.

Zum Beispiel:

{ warden.user.user.key => [[1], "$2a$10$KItas1NKsvunK0O5w9ioWu"] } 

wo

1 die id des angemeldeten Benutzers ist.

$2a$10$KItas1NKsvunK0O5w9ioWu aka long-random-string ist das teilweise verschlüsselte Passwort des Benutzers mit der ID 1.

Sie können dies, indem Sie auf rails console überprüfen und

User.find(1).encrypted_password 
## => "$2a$10$KItas1NKsvunK0O5w9ioWuWp4wbZ4iympYMqVCRmmvTGapktKqdMe" 

UPDATE

könnten Sie mir sagen, ein bisschen mehr über diese teilweise verschlüsseltes Kennwort ausführt? Warum ist es teilweise und nicht voll?

Um die oben gestellte Frage in dem Kommentar zu beantworten, Devise speichert den Teil encrypted_password in der Sitzung durch authenticatable_salt Methode aufgerufen wird. Devise speichert die partielle encrypted_password, da es zuverlässiger ist, als das vollständige verschlüsselte_Kennwort in der Sitzung offenzulegen (obwohl es verschlüsselt ist). Aus diesem Grund werden die ersten 30 Zeichen [0,29] der encrypted_password extrahiert und in der Sitzung gespeichert.

# A reliable way to expose the salt regardless of the implementation. 
    def authenticatable_salt 
    encrypted_password[0,29] if encrypted_password 
    end 

Sie können für authenticatable_salt hier den Code sehen.

wo/wann wird es verwendet? Wird es von Devise oder von Rails oder von beiden verwendet?

Es wird von Devise zur Authentifizierung Zweck verwendet wird, ob oder ob nicht ein bestimmte Benutzer in. Würde Ideal Anwendungsfall sein, angemeldet, um zu überprüfen, wie eine bestimmte Rails-Anwendung ein Benutzer verfolgt, wie in, wenn einem angemeldet ist neue Seite wird angefordert. Da HTTP-Anfragen statusfrei sind, wäre es unmöglich zu sagen, dass eine bestimmte Anfrage tatsächlich von diesem bestimmten Benutzer stammt, der angemeldet ist? Aus diesem Grund sind Sitzungen wichtig, da sie es der Anwendung ermöglichen, den angemeldeten Benutzer von einer Anforderung bis zu einer anderen zu verfolgen, bis die Sitzung abläuft.

+0

danke! Kannst du mir etwas mehr über dieses teilweise verschlüsselte Passwort erzählen? Warum ist es teilweise und nicht voll? Wo/Wann wird es verwendet?Wird es von Devise oder von Rails oder von beiden verwendet? –

+0

(oder fühlen Sie sich frei, mich zu irgendwo zu leiten, um darüber zu lesen - aber ich konnte nirgends einen guten Erklärer finden) –

+1

@JohnBachir Bitte lesen Sie meine aktualisierte Antwort. Hoffe es hilft dir zu verstehen. –