为每台计算机创建唯一 ID,并在没有用户登录时将其用作标识符
Create unique id per computer and use it as identifier when no user is logged in
我正在尝试创建一个网络应用程序来提交对某些文章的评级。后端是 django,前端是 angularjs.
评分是具有以下属性的模型:评分者、价值和文章
我想让匿名用户提交评分,在这种情况下,评分者为 null,但评分对象附加了一个 sessionid 以标识此评分的来源。
目前,我正在使用 django 的会话模块,并将 session_key
属性附加到每个评级对象。但是,如果有效用户登录和注销,会话会发生变化。
我想要的是为每台创建评级的计算机提供一个唯一标识符,并将此 ID 附加到对象。所以,只要没有用户登录,一台电脑创建的对象,无论刷新、重启、登录+注销等,都是同一个标识符。
通过这样做,我的最终目标是让匿名用户使用该应用程序就像 he/she 一直登录一样。换句话说,当没有真正的用户时,每台计算机都是唯一的 "implicit user"已登录。
我的问题是,有没有办法做到这一点?
提前致谢!
本地存储
无法完美跟踪匿名用户。
在我看来你能做的最好的就是使用 localStorage
:
localStorage.setItem('anonymous-key', 'some-key-you-generated');
然后每当没有用户登录时:
var anonymousKey = localStorage.getItem('anonymous-key');
坚持
本地存储会一直保存,直到用户明确清除它。出于安全原因,某些浏览器可能还会为您的数据添加到期日期。
另请参阅:https://developer.mozilla.org/nl/docs/Web/API/Window/localStorage
我正在尝试创建一个网络应用程序来提交对某些文章的评级。后端是 django,前端是 angularjs.
评分是具有以下属性的模型:评分者、价值和文章
我想让匿名用户提交评分,在这种情况下,评分者为 null,但评分对象附加了一个 sessionid 以标识此评分的来源。
目前,我正在使用 django 的会话模块,并将 session_key
属性附加到每个评级对象。但是,如果有效用户登录和注销,会话会发生变化。
我想要的是为每台创建评级的计算机提供一个唯一标识符,并将此 ID 附加到对象。所以,只要没有用户登录,一台电脑创建的对象,无论刷新、重启、登录+注销等,都是同一个标识符。
通过这样做,我的最终目标是让匿名用户使用该应用程序就像 he/she 一直登录一样。换句话说,当没有真正的用户时,每台计算机都是唯一的 "implicit user"已登录。
我的问题是,有没有办法做到这一点? 提前致谢!
本地存储
无法完美跟踪匿名用户。
在我看来你能做的最好的就是使用 localStorage
:
localStorage.setItem('anonymous-key', 'some-key-you-generated');
然后每当没有用户登录时:
var anonymousKey = localStorage.getItem('anonymous-key');
坚持
本地存储会一直保存,直到用户明确清除它。出于安全原因,某些浏览器可能还会为您的数据添加到期日期。
另请参阅:https://developer.mozilla.org/nl/docs/Web/API/Window/localStorage