我用这个来为用户创建一个会话:如何让会话持续更长时间?
put_session(conn, :user_id, user_id)
但到期相当快,大约一天的时间,我认为。我想要2周左右。我如何指定一个有效的时间范围?
我用这个来为用户创建一个会话:如何让会话持续更长时间?
put_session(conn, :user_id, user_id)
但到期相当快,大约一天的时间,我认为。我想要2周左右。我如何指定一个有效的时间范围?
默认会话Cookie没有到期日期设置,创建存在until the user closes the browsing session会话cookie。
变化:
plug Plug.Session,
store: :cookie,
key: "_my_app_key",
signing_salt: "..."
到:
plug Plug.Session,
store: :cookie,
key: "_my_app_key",
signing_salt: "...",
max_age: 2 * 7 * 24 * 60 * 60 # number of seconds in 2 weeks
您可以从您的应用程序检查set-cookie
头验证这一点你可以通过max_age: <integer>
到plug Plug.Session
呼叫lib/my_app/endpoint.ex
设置一个特定的时间。他们会转离:
$ curl -I localhost:4000 | grep set-cookie
的Set-Cookie:_my_app_key = SFMyNTY.g3QAAAABbQAAAANmb29GP-MM4khcFDg.V3iUo5xw9HqgCmvRLBvhRguMixOlzZH_pqxRIYVAwdQ;路径= /;仅Http
到:
$ curl -I localhost:4000 | grep set-cookie
的Set-Cookie:_my_app_key = SFMyNTY.g3QAAAABbQAAAANmb29GP-M66RqWt64.6PvtX96B9jwgyIhjJBX5AiDV9_96838plEpgGxS9u0Q;路径= /;到期= 2017年3月23日(星期四)15:06:48 GMT;最大年龄= 1209600; HttpOnly
您正在将其放入灵活性有限的会话中。你可以创建一个单独的cookie,如一条路可走,并设置其max_age
这样的:
put_resp_cookie(conn, :user_id, user_id, max_age: 30 * 24 * 60 * 60)
因此,每个人都可以编辑自己的cookie并代表其他用户登录? – Junidi
@Junidi这就是如何处理这种情况,处理安全问题不成问题。 – JustMichael
其实不,我关闭浏览器,然后打开它,它仍然活着。 – Junidi
@Junidi这是因为,例如,Chrome在重新启动后不会终止会话,您必须更改设置,我相信 – JustMichael
是的,http://stackoverflow.com/questions/10617954/chrome-doesnt-delete-session-cookies 。 – Dogbert