Reinvia Email di Attivazione - Errore 404

Quando un utente si iscrive, l’email di attivazione funziona correttamente. Tuttavia, tentare di accedere e reinviare le email di attivazione genera il seguente log di produzione:

Started POST "/u/action/send_activation_email" for (removed ip and timestamp)
Processing by UsersController#send_activation_email as */*
Completed 404 Not Found in 2ms (Views: 0.1ms | ActiveRecord: 0.0ms | Allocations: 542)

Questo errore si verifica su tutti i container che eseguono 3.2.0.beta1-dev. “production_errors.log” è vuoto.

Passaggi per riprodurre:

  1. Iscriviti con il modulo predefinito
  2. Ignora l’email di attivazione e tenta di accedere
  3. Fai clic su “Reinvia email di attivazione” nel popup “Non puoi ancora accedere. Ti abbiamo precedentemente inviato un’email di attivazione a…”
  4. “Si è verificato un errore: l’URL o la risorsa richiesta non è stata trovata.”
  5. Fai clic su “OK” e quindi appare il seguente popup “Ti abbiamo inviato un’altra email di attivazione a…” (Tuttavia, la seconda email di attivazione non viene effettivamente inviata)

Vedo che la funzione/azione send_activation_email è soggetta a limitazione della frequenza.

def send_activation_email
    if current_user.blank? || !current_user.staff?
      RateLimiter.new(nil, "activate-hr-#{request.remote_ip}", 30, 1.hour).performed!
      RateLimiter.new(nil, "activate-min-#{request.remote_ip}", 6, 1.minute).performed!
    end

Ciò comporterebbe l’errore 404? Ci sono altri log che posso consultare per risolvere questo problema?

1 Mi Piace

Sto testando questo sul mio sito di sviluppo locale, il problema sembra essere che né i parametri usernameemail vengono impostati per la richiesta POST effettuata a /u/action/send_activation_email quando la richiesta viene effettuata dopo che un utente che non ha cliccato sul link nell’email di attivazione tenta di accedere con nome utente/password:

Se, invece, l’utente clicca sul pulsante “Reinvio email di attivazione” dalla pagina “account creato” che viene visualizzata immediatamente dopo la registrazione di un account, il parametro username viene impostato per la richiesta. Per riferimento, il pulsante che funziona è questo:

La mia ipotesi su ciò che sta accadendo è che per la richiesta che funziona, i parametri per la richiesta POST vengono impostati in base ai valori inseriti dall’utente quando completa il modulo di registrazione.

L’errore 404 viene attivato qui:

1 Mi Piace

Questo mi sembra un bug.

Aggiungo solo una nota che questo problema impedisce anche agli utenti i cui account sono stati disattivati dalla loro pagina admin/utenti di attivare l’email di attivazione dopo aver tentato di accedere e aver fatto clic sul pulsante “Invia nuovamente email di attivazione”.

Ciò causa lo stesso errore segnalato sopra.

2 Mi Piace

Grazie per il report @john.sanchirico, e anche a @simon per l’analisi dettagliata :pray:

Questo verrà risolto da

2 Mi Piace

Questo argomento è stato chiuso automaticamente dopo 20 ore. Non sono più consentite nuove risposte.