我想知道如何生成自动激活密钥以隐藏到我的电子邮件激活链接中
那就是发送的链接: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

10-07 13:48