@@ -80,17 +80,15 @@ def authenticate(login, password):
8080 return user
8181
8282
83- def generate_confirmation_token (app , email ):
83+ def generate_confirmation_token (app , email , salt ):
8484 serializer = URLSafeTimedSerializer (app .config ["SECRET_KEY" ])
85- return serializer .dumps (email , salt = app . config [ "SECURITY_PASSWORD_SALT" ] )
85+ return serializer .dumps (email , salt = salt )
8686
8787
88- def confirm_token (token , expiration = 3600 * 24 * 3 ):
88+ def confirm_token (token , salt , expiration = 3600 ):
8989 serializer = URLSafeTimedSerializer (current_app .config ["SECRET_KEY" ])
9090 try :
91- email = serializer .loads (
92- token , salt = current_app .config ["SECURITY_PASSWORD_SALT" ], max_age = expiration
93- )
91+ email = serializer .loads (token , salt = salt , max_age = expiration )
9492 except :
9593 return
9694 return email
@@ -103,7 +101,12 @@ def send_confirmation_email(app, user, url, template, header, **kwargs):
103101 """
104102 from ..celery import send_email_async
105103
106- token = generate_confirmation_token (app , user .email )
104+ salt = (
105+ app .config ["SECURITY_EMAIL_SALT" ]
106+ if url == "confirm-email"
107+ else app .config ["SECURITY_PASSWORD_SALT" ]
108+ )
109+ token = generate_confirmation_token (app , user .email , salt )
107110 confirm_url = f"{ url } /{ token } "
108111 html = render_template (
109112 template , subject = header , confirm_url = confirm_url , user = user , ** kwargs
0 commit comments