是的,有一个similar question没有解决实际问题。
我的用户可能正在试用该应用程序,然后决定注册要保存的帐户。注册后,我需要登录它们而无需重定向或重新加载页面。我已经完成了注册工作,并且可以登录,但是为了使登录的会话在浏览器中处于活动状态,我该如何返回客户端呢?我不想在堆栈中添加任何其他框架或库。
Django视图(有些省略了)
class CheckAuthTokenAjaxView(FormView):
form_class = AuthTokenForm
def post(self, *args, **kwargs):
form = self.form_class(self.request.POST)
u = get_user_model().objects.filter(email=email).first()
u.email_confirmed = True
u.save()
login(self.request, u)
# What should I be sending back?
return JsonResponse({"success": True}, status=200)
JS
Doc.Register.checkAuthTokenForm = function(event) {
event.preventDefault();
var form = document.getElementById('authtoken-form');
var data = new FormData(form);
d3.json('/users/ajax/checkAuthToken/', {
method: 'post',
body: data,
headers: {
// "Content-type": "charset=UTF-8",
"X-CSRFToken": Doc.CSRF,
}
})
.then(result => {
if (result.hasOwnProperty('errors')) {
// ...
} else {
// WHAT DO I DO HERE?
}
});
}