0

我想在我最近的项目中尝试 Mozilla Persona,但发现了一个令人不快的功能。

我在 navigator.id.watch 中硬编码电子邮件地址,如下所示:

navigator.id.watch({
    loggedInUser: "vansanblch@gmail.com",
    onlogin: function () {
        console.log("onlogin");
    },
    onlogout: function () {
        console.log("onlogout");
    },
});

然后我打电话navigator.id.request()并输入我的凭据以通过身份验证。在开发人员 API(关于 navigator.id.watch)中,据说如果 loggedInUser 等于来自 Persona 的状态,则不会调用回调。

但是为什么我每次打电话时都会在控制台中显示“onlogin”消息navigator.id.request()

4

1 回答 1

1

发生这种情况是因为您发现了 Persona 没有处理的极端案例。哎呀。

Persona 团队需要坐下来弄清楚当你这样做时会发生什么我已经提交了一个错误来跟踪该讨论:https ://github.com/mozilla/browserid/issues/3332

如果您能说出您认为正确的行为应该是什么以及为什么这样做,我将不胜感激。

对于上下文,Persona 最初loggedInUser仅用于确定在页面加载期间自动调用哪些回调。在那之后,它或多或少地被忽略了。这就是为什么您会看到对onlogin的调用,即使所选身份与当前身份匹配。

于 2013-05-01T18:48:05.353 回答