gpt4 book ai didi

javascript - 登录的用户是特定 View 上的 AnonymousUser

转载 作者:行者123 更新时间:2023-12-02 14:19:25 26 4
gpt4 key购买 nike

我遇到一个问题,在特定 View 请求上,用户返回 AnonymousUser。

这是由我用来收款的 JavaScript 库引起的。该 javascript 库创建一个 cookie,使 django 将登录用户视为 AnonymousUser。

如果我删除该 cookie,django 会看到用户已登录,但经过几次刷新后,我会得到一个新的 cookie,它再次使登录用户成为 AnonymousUser。

我仅在该库插入到页面中的一个特定页面中遇到此问题。

有什么问题吗?

最佳答案

javascript in question设置名为 mistertango[collect][mt_fp] 的 cookie。

当 cookie 被定义时(我猜是 RFC 6265 ),它们似乎并没有真正指定您可以在 cookie 名称中使用哪些字符,除了基本的“文本”。

这会导致解析 cookie 名称时出现一些问题。 Django 依赖 Python 的 http.cookies 来实现这一点,而且 http.cookies 似乎不允许 cookie 名称中包含括号。 http.cookie 无法解析其中包含括号的 cookie 对,并且不会解析此后的对,这意味着它看不到用于身份验证的 sessionid cookie。

我无法判断 Django/http.cookie 是否应该支持这一点。PHP does however似乎支持它(即使它被破坏了),而 Ruby on Rails does not 。简单的解决方案是在 Cookie 名称中仅使用字母数字字符

对于您的情况,最好的解决方案是让 javascript 作者更改他们的 cookie 名称。如果这是不可能的,或者同时,您可以自己托管 javascript 并更改副本中的 cookie 名称。 (如果 cookie 用于此 javascript 代码段之外的其他内容,这可能不起作用,但我不太了解 Javascript,也看不出它的用途。)

关于javascript - 登录的用户是特定 View 上的 AnonymousUser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38787545/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com