umami 不使用 cookie 、localstorage 实现了 uv 识别,符合最新的隐私规范,代码也比较精简。花了一点时间,研究了这部分的实现,还是很有意思的。技术框架:next.js + mysql/postgresql整体看下来,nextjs 准备了很多的约定,比如说 api 目录在pages/api/下面,比如说,pages/api/user.js,nextjs 框架有大量这样的约定。个人还是不太习惯这样的框架,总有种不伦不类的感觉,一些小项目可以这样搞,大型项目,还是需要明确的代码分成,封装。用户识别uv 的核心是去做用户识别,一般会本地存储一个随机的id,每次页面路由变化,上报给后台。而 umami 为了符合一系列的隐私规范,并没有这么做,没有使用 cookie或者 localStorage 。上报路径”pages/api/collect.js”,最终会产生 session 并且通过 session 返回 token 。session 生成方法getSessionconstsession_uuid=uuid(website_id,hostname,ip,userAgent);session=awaitcreateSession(website_id,{session_uuid,hostname,browser,os,screen,language,cou
...
继续阅读
(50)