【问题标题】:Mozilla Persona/BrowserID email address and cookiesMozilla Persona/BrowserID 电子邮件地址和 cookie
【发布时间】:2012-09-28 16:58:42
【问题描述】:

对不起,通用标题。我现在正在玩 Mozilla 的 Persona。我将 Express.js 与 express-persona 中间件一起使用,因此设置一切都非常简单。客户端部分也很简单,但我很难理解文档的某个特定部分。它说:

loggedInUser: 当前登录到您的用户的电子邮件地址 来自这台计算机的站点,如果没有人登录,则为 null例如, 您可以检查浏览器的 cookie 以确定谁已登录。 [...] Persona 将比较您传入的电子邮件地址 loggedInUser 自己知道用户当前是否在 登录,以及他们是谁。如果这些不匹配,它可能 在页面加载时自动调用 onloginonlogout。 (Source)

express-persona 设置一个 cookie,其中包括(我猜)用作密码替换的 crypto-foo。我应该将后端返回的电子邮件地址存储在单独的 cookie 中吗?这似乎不是一个好主意。也许你们中的一个人知道这应该如何工作。

【问题讨论】:

    标签: javascript authentication session-cookies mozilla browserid


    【解决方案1】:

    您不会将电子邮件地址存储在 Persona 的 cookie 中,就像您不会将用户名存储在 cookie 中以进行密码驱动登录一样。

    不,基本上你对 Persona 做同样的事情:使用一个会话,存储在你的服务器上,从 cookie 中键入。唯一的区别是您的网站通过了 Persona 身份验证过程,而不是验证用户名 + 密码。

    您链接到的页面上的示例有一个 currentUser 变量。好吧,在一个真实的网站中,该变量将作为模板从服务器端填写。尽你所能支持登录会话,找到当前经过身份验证的用户,插入该用户的电子邮件地址。

    【讨论】:

    • 问题是我真的什么都没做。看起来 express 中间件为我做了一切。 Here's MDN 页面中的示例和here's express-persona 示例。我单击按钮,登录,关闭选项卡,打开一个新选项卡,再次连接到 localhost,然后我就自动登录了。感觉就像我应该在进行 ajax 调用之前设置 currentUser 变量。
    • 是的,looks like express-persona does exactly what I suggested:它将已验证的电子邮件存储在当前会话中的可配置密钥下(默认为email)。因此,您似乎会从 request.session.email 获得当前经过身份验证的电子邮件,并依靠 express-persona 为您设置它
    • 是的,我就是这么想的。我想我只是不明白 currentUser 变量的用途。我可以忍受这一点。谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-23
    • 2015-01-23
    • 2012-04-08
    相关资源
    最近更新 更多