1

Ich benutze AuthLogic, um neue Benutzer zu aktivieren/zu authentifizieren, und ich verwende derzeit Sitzungsdaten, damit das System weiß, wohin der neue Benutzer nach der Aktivierung gesendet wird (z. B. welches Projekt angezeigt wird)). Daher verwendet es eine Reihe von Variablen wie die Sitzung [: project_id], die vorhanden sein muss, wenn der Benutzer das Konto zum ersten Mal aktiviert.So erhalten Sie Sitzungsdaten über eine Benutzerregistrierung

Das Problem ist das - was passiert, wenn die Sitzungsdaten nicht vorhanden sind, wenn der Benutzer aktiviert? Einige Fälle:

  • Ein Benutzer auf einem Browser registriert, aber dann öffnet ihre Aktivierungs-E-Mail auf einem anderen,
  • ein Benutzer registriert/aktiviert mit Inkognito-Modus,
  • Ein Benutzer eines Tag wartet oder zwei vor Aktivierung ihres Kontos

Von dem, was ich sagen kann, Sitzungsdaten unter Verwendung stellt eine UX Schwachstelle, weil, wenn es nicht bestehen bleiben, endet der Benutzer in einer nicht hilfreich Lage (oder noch schlimmer, einen 500-Fehler aufgrund einer Session-Variablen erwartet, das tut nicht existieren).

Es ist mir wichtig, dass Informationen wie project_id (und einige andere Variablen) zuverlässig von der Registrierung bis zur Aktivierung gespeichert werden. Ich bin vorsichtig bei der Erstellung neuer Datenbankfelder für diesen begrenzten und vorübergehenden Zweck, aber ich bin offen für alle Vorschläge. Wie kann ich diese Lücke schließen?


Als Antwort auf Omars Antwort:

In UserMailer.rb habe ich definiert activation_instructions (Benutzer), die die activation_instructions an neue Benutzer E-Mail versenden. Im Moment sehe ich folgendes:

def activation_instructions(user) 
    @user = user 
    @account_activation_url = activate_url(user.perishable_token) 
    mail(:to => "#{user.login} <#{user.email}>", :subject => "Welcome!") 
end 

Wie kann ich die get-Parameter hinzufügen? Angenommen, ich habe die Parameter project_id und category_id?

Antwort

1

Sie könnten diesen Parameter als Get-Parameter über die Aktivierungs-E-Mail senden, die alle drei Probleme lösen würde, nein?

+0

Ich habe oben weitere Details hinzugefügt. – sscirrus

+0

Irgendwie sollten Sie jedesmal, wenn Sie UserMailer.deliver_activation_instructions aufrufen, auch den Parameter project_id übergeben und die E-Mail-Ansicht ändern, um dies zu berücksichtigen. –

Verwandte Themen