当我加载一个用户登录的页面(并且没有 Persona)时,客户端发送一个带有 cookie 的请求。cookie 对用户进行身份验证,服务器可以发送包含已识别用户的敏感信息的页面。
将 Persona 与 Observer API 一起使用时,我在发送页面时嵌入了一个loggedInUser,以告诉 Persona 服务器认为谁已登录。
如果 Persona 认为loginInUser不是服务器认为的那个人,就会出现一个潜在的问题。在这种情况下,我们会收到“onLogout”或“onLogin”回调。
如果我们打算认真对待 Persona 的意见,那么安全的方法是:
- 发送请求
- 发送没有敏感信息的页面
- 如果 Persona 同意loggedInUser发送敏感信息,否则登录或注销
这是低效的,因为它需要为一个页面往返两次,并且使 Web 应用程序复杂化。
从 Persona 文档中非常不清楚一个人的目的是什么。最简单的就是忽略 Persona 关于谁登录的理论。但是为什么要使用这么复杂的 API?
我几乎可以肯定错过了一些东西,但是当我在上面列出时,这对我来说看起来很糟糕。