当用户注销时,我应该做什么?

25

我正在设置Mixpanel,发现如果我用一个用户登录(并且identify了该用户),然后注销并重新注册一个新用户,新用户的详细信息会覆盖之前登录的用户(大概是当我调用alias时)。如何告诉mixpanel用户已经注销,并重置身份标识令牌(再次匿名)?

4个回答

14

我遇到了同样的问题,在一番搜索之后,我发现可以使用mixpanel.cookie.clear()手动清除混合面板的Cookie。

然而,您需要确保混合面板已加载,因此我最终设置了一个愚蠢的超时:

var id = window.setInterval(function() {
  if (mixpanel.cookie && mixpanel.cookie.clear) {
    mixpanel.cookie.clear();
    window.clearInterval(id);
  }
}, 50);

接着,因为我不想在每个页面上都这样做,所以我在我的注销重定向URL上添加了一个查询字符串参数。所以,在访问/logout后,它会将用户重定向到/home?_ref=logout,此时只有存在该查询字符串参数时,我才会清除mixpanel cookie。

这相当繁琐,但好像能够正常工作。


5
对于那些使用单页应用并且可能永远不会刷新页面的用户,请确保在清除cookies后立即重新初始化。 mixpanel.cookie.clear(); mixpanel.init("GARBAGE"); - kevinnuut
为了确保Mixpanel已经加载完成,您可以在init中使用loaded选项,其中传递一个函数以在其加载后运行:mixpanel.init("YOUR_TOKEN", { "loaded": function() { ... 您的清晰代码放在这里 ... } } ); - Anton
@kevinnuut 为什么我们需要重新初始化? - gaurav5430

11

9

对于安卓设备,您可以使用以下代码MixpanelAPI.reset()来注销。


4
  1. 调用clearSuperProperties()以删除本地存储中的任何超级属性。
  2. 设置new_distinct_id = UUID.randomUUID().toString());
  3. 调用.identify(new_distinct_id).getPeople().identify(new_distinct_id)

这样可以清除设备上的所有内容,以便新用户可以注册并与另一个distinct_id关联。

使用javascript执行此操作的最佳方法是删除cookie。 cookie的名称为mp_{mixpanel_token_id}_mixpanel


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接