【发布时间】:2017-11-03 14:19:08
【问题描述】:
我正在为使用 Guardian 处理身份验证的 Web 应用程序开发登录系统。 在我的 Guardian 配置中,我有
ttl: {30, :days}
通过调用将用户的令牌存储在 cookie 中:
defp login(conn, user) do
conn
|> Guardian.Plug.sign_in(user)
end
像这样,令牌的有效期为 30 天,即使浏览器关闭也会保留在那里(cookie 的预期行为)。 但是,用户应该能够选择在登录期间是否被记住。 如果不是,则必须在关闭浏览器窗口时从 cookie 中删除令牌。 我试过设置
ttl: {0, :days}
它似乎完成了所需的行为。说:
- ttl: {0, :days} 是在浏览器窗口关闭之前对用户进行身份验证的正确方法吗?如果是这样,如何在 Guardian.Plug.sign_in(conn, user) 被调用之前以编程方式更改管道中的 ttl 值?
- Guardian 是否能够根据用户选择将令牌存储在 cookie 或会话存储中? (选定的 cookie 记住我,如果没有,会话存储)
【问题讨论】:
标签: cookies elixir phoenix-framework remember-me guardian