mirror of
https://github.com/discourse/discourse.git
synced 2025-06-01 09:08:10 +08:00
DEV: Hash tokens stored from email_tokens (#14493)
This commit adds token_hash and scopes columns to email_tokens table. token_hash is a replacement for the token column to avoid storing email tokens in plaintext as it can pose a security risk. The new scope column ensures that email tokens cannot be used to perform a different action than the one intended. To sum up, this commit: * Adds token_hash and scope to email_tokens * Reuses code that schedules critical_user_email * Refactors EmailToken.confirm and EmailToken.atomic_confirm methods * Periodically cleans old, unconfirmed or expired email tokens
This commit is contained in:
@ -567,11 +567,13 @@ describe 'users' do
|
||||
expected_response_schema = nil
|
||||
|
||||
let(:user) { Fabricate(:user) }
|
||||
let(:token) { user.email_tokens.create(email: user.email).token }
|
||||
let(:params) { {
|
||||
'username' => user.username,
|
||||
'password' => 'NH8QYbxYS5Zv5qEFzA4jULvM'
|
||||
} }
|
||||
let(:token) { Fabricate(:email_token, user: user, scope: EmailToken.scopes[:password_reset]).token }
|
||||
let(:params) do
|
||||
{
|
||||
'username' => user.username,
|
||||
'password' => 'NH8QYbxYS5Zv5qEFzA4jULvM'
|
||||
}
|
||||
end
|
||||
|
||||
it_behaves_like "a JSON endpoint", 200 do
|
||||
let(:expected_response_schema) { expected_response_schema }
|
||||
|
Reference in New Issue
Block a user