客服在同一浏览器里开了两个标签,分别登录两个账号,切换标签后发现操作落在了别人名下,事后才发现。碰到这种情况,我一般先确认改动有没有真的生效。

原因不复杂,登录态存在同域同名的 cookie 里,后一次登录覆盖前一次,两个标签共用同一份身份,浏览器也分不开这两个人,谁登入就是谁,责任说不清。

「WordPress 多账号串号」这个问题文档写得含糊,实际行为以当前版本为准,别照旧版本的结论套。报错里带路径的,先去看那个路径在不在、权限对不对。

$_SESSION['wp_user'] = $user_id;
// 关键操作前
$uid = (int) $_SESSION['wp_user'];
if ($uid !== get_current_user_id()) wp_die('请重新登录');

同一份配置存在多处的,先确认改的是被加载的那一份。新版本先放一台机器上跑一天再全量,问题一般在这段时间暴露。

具体做法是,把不同的账号分到不同子域或者独立的容器里;登录的时候把当前的身份记录到会话变量里面;做敏感操作之前再确认一次当前到底是谁在登录。

最后用这个标准收尾,两个标签各自保持身份,切换后操作不会落到另一个账号,两边互不影响。

作者 9823189