Per Accounts.forgotPassword()
e Accounts.sendVerificationEmail()
, viene generato un token.I token di posta elettronica della password degli account scadono mai?
Questo token ha una scadenza?
Se sì, dopo quale periodo di tempo?
Per Accounts.forgotPassword()
e Accounts.sendVerificationEmail()
, viene generato un token.I token di posta elettronica della password degli account scadono mai?
Questo token ha una scadenza?
Se sì, dopo quale periodo di tempo?
Al momento non esiste un codice incorporato correlato alla scadenza del token, né l'impostazione di un tempo di scadenza né l'applicazione di esso.
I dati di reset e-mail (Token, e-mail e Token data di creazione) viene salvato nel record dell'utente, come si può vedere in the source:
var tokenRecord = {
token: token,
email: email,
when: when
};
Meteor.users.update(userId, {$set: {
"services.password.reset": tokenRecord
}});
Pertanto, la data è nel seguente selettore mongo:
'services.password.reset.when'
Purtroppo, tutti i dati reset
è disinserito, non appena il metodo resetPassword
viene chiamato con il token corretto.
Ciò rende inutilizzabile le validateLoginAttempt
callback:
Accounts.validateLoginAttempt(function(options) {
if (options.methodName === 'resetPassword' && options.allowed === true) {
console.log('resetPassword', options.user.services.password.reset); //undefined
}
return true;
});
Analogamente, il token di verifica email viene memorizzato in user.services.email.verificationTokens
, che (se impostato) è una matrice di record di token. sono
Le date, quindi, in
'services.email.verificationTokens.when'
Si potrebbe, tuttavia, invalidare vecchi gettoni periodicamente abbastanza facilmente con queste informazioni, o rotolare il proprio forcella locale o involucro di conti-password.
' when' indica quindi la data in cui è stato creato il token, non quello in cui scadrà. Sei riuscito a trovare dati sulla scadenza automatica, possibilmente basata sul tempo, durante la scansione del codice? –
Non esiste alcun codice che scada il token. Ad esempio, devi eseguire il rollover, creare qualcosa che viene eseguito ogni ora e rimuove i token precedenti. Potresti anche voler cambiare il modello di email di reimpostazione della password per riflettere questo. – MasterAM
Ovviamente, è sempre possibile inserire gli account-password o sovrascrivere i gestori dei metodi e inserire questa funzionalità in. – MasterAM
Un 'verificationToken' ha una data/ora di creazione ma non una data/ora di scadenza. So che un token di verifica o un token di reimpostazione della password possono essere utilizzati solo una volta. –
Interessante - che se uso il token due volte (clicca di nuovo sul link email) ottengo questo messaggio err: "Errore: Token scaduto [403]" Ingannevole testo. – Artfree
Michael: è possibile accedere alla data di creazione della data di creazione del controllo? Se è così, posso creare la mia routine di scadenza dei token. Grazie. – Artfree