django - Django中的电子邮件激活在不同的浏览器中失败
问题描述
我的应用程序有电子邮件激活。但是,当用户在一个浏览器中创建帐户并尝试从另一个浏览器验证链接时,激活链接会失败。错误消息是“激活链接无效。”
当用户尝试在同一浏览器中使用激活链接时,它通常会起作用。但是,有时它仍然会失败,我仍然会收到“激活链接无效”。基本上,我不知道为什么它有时会失败而不是其他人。
try:
uid = force_text(urlsafe_base64_decode(uidb64))
user = User.objects.get(pk=uid)
except(TypeError, ValueError, OverflowError, User.DoesNotExist):
user = None
if user is not None and account_activation_token.check_token(user, token):
.... do something
else:
return HttpResponse('Activation link is invalid!')
这是我创建电子邮件的地方:
def activation_email(request):
if request.user.is_authenticated:
user=request.user
message = render_to_string('email.html', {
'user':user,
'token':account_activation_token.make_token(user),
'uid':urlsafe_base64_encode(force_bytes(user.pk)),
})
....send mail
else:
return redirect('somewhere_else')
基本上,Django 无法识别用户。不知道为什么它有时会失败,我猜它在 if user.is_authenticated 语句中失败了。
解决方案
推荐阅读
- python - Plotly - 在雷达图上绘制背景形状
- python - Numpy - 沿轴获取平均值,但在每个单元格中具有该轴的不同子集
- c# - 如何为 Universal Viewer 动态创建 manifest.json
- .htaccess - 不考虑 RewriteRule Last [L] 标志?
- json - Classroom API 返回错误的截止日期
- javascript - 我想要卡片中每个元素的事件监听器
- r - input$sidebarItemExpanded 不适用于 R Shiny 中的 convertMenuItem
- css - 有没有办法修复css中自定义下拉箭头的大小?
- python - 如何在此文件中的每 4 个元素之后将输出附加到 txt 文件
- excel - 为 VBA 宏创建字典对象时遇到问题