Django如何为电子邮件激活链接生成自动激活密钥
Posted
技术标签:
【中文标题】Django如何为电子邮件激活链接生成自动激活密钥【英文标题】:Django how to generate an automatic activation key for email activation link 【发布时间】:2016-10-15 00:45:38 【问题描述】:我想知道如何生成自动激活密钥以连接到我的电子邮件激活链接 这是发送的链接: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") 邮件发送()【问题讨论】:
【参考方案1】:您可以使用 Signer 类来实现这一点。即
from django.core.signing import Signer
signer = Signer()
signed_value = signer.sign(profile.user.email)#gives 'email@email.com: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
【讨论】:
以上是关于Django如何为电子邮件激活链接生成自动激活密钥的主要内容,如果未能解决你的问题,请参考以下文章
如何为 Google App Signing 生成上传密钥?