我想知道如何生成自动激活密钥,以使其与我的电子邮件激活链接相对应:那是发送的链接:http:// localhost:8001 / sign_up / 60 / subsribe / 14 / confirmEmail但是为了提高安全性,我想发送类似的内容:http:// localhost:8001 / sign_up / 60 / subsribe / 14 / confirmEmail / {{activation_key}}
mail = EmailMultiAlternatives(“电子邮件确认以完成注册,”,“以完成注册,请参见上面的链接”,from_email,至= [email]) mail.attach_alternative('http://本地主机:8001 / sign_up /' + str(id_account)+'/订阅/'+ str(id_sub)+'/ ConfirmEmail',“ text / html”) mail.send()
您可以使用Signer类来实现此目的。IE
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句