我想知道如何生成自动激活密钥以隐藏到我的电子邮件激活链接中
那就是发送的链接:http://localhost:8001/sign_up/60/subsribe/14/confirmEmail
但是为了提高安全性,我想发送类似以下内容的文件:http://localhost:8001/sign_up/60/subsribe/14/confirmEmail/ {{activation_key}}
邮件= EmailMultiAlternatives(“确认倒入最终投票权证明书”,“倒入最终投票权证明书,veilleles顾问le lien ci-dessus”,from_email,收件人= [电子邮件])
mail.attach_alternative('http:// localhost:8001 / sign_up /'+ str(id_account)+'/ subscribe /'+ str(id_sub)+'/ confirmEmail',“text / html”)
mail.send()
最佳答案
您可以使用Signer类来实现此目的。即
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