2016-06-14 2 views
3

Я хотел бы знать, как я могу генерировать автоматический ключ активации, чтобы быть concatinated на мою адрес электронной активации ссылки Это присланная ссылка: http://localhost:8001/sign_up/60/subsribe/14/confirmEmail Но для большей безопасности я хочу отправить что-то вроде: http://localhost:8001/sign_up/60/subsribe/14/confirmEmail/ {{}} activation_keyДжанго, как генерировать автоматический ключ активации для ссылки активации электронной

 
mail = EmailMultiAlternatives("Confirmation d\'email pour finaliser votre inscripttion","pour finaliser votre inscription, veuillez consulter le lien ci-dessus ",from_email, to=[email]) 

mail.attach_alternative('http://localhost:8001/sign_up/' + str(id_account) + '/subscribe/' + str(id_sub) + '/confirmEmail',"text/html") 

mail.send() 

ответ

3

Вы можете использовать класс подписывающего для достижения этой цели. т.е.

from django.core.signing import Signer 
signer = Signer() 
signed_value = signer.sign(profile.user.email)#gives '[email protected]:signed_things', extract signed_things' 
key = ''.join(signed_value.split(':')[1:]) 
#send out key as part of url 

К примеру, вы можете сохранить ключ с профилем пользователя. Когда запрашивается ссылка, вы можете сделать примерно следующее:

profile = get_object_or_404(UserProfile, key=key) 
signer = Signer() 
if signer.unsign('{0}:{1}'.format(profile.user.email, key)) == profile.user.email: 
    profile.verified = True