mirror of
https://github.com/ninenines/cowboy.git
synced 2025-07-15 20:50:24 +00:00
116 lines
2.3 KiB
Text
116 lines
2.3 KiB
Text
![]() |
= cowboy_req:set_resp_cookie(3)
|
||
|
|
||
|
== Name
|
||
|
|
||
|
cowboy_req:set_resp_cookie - Set a cookie
|
||
|
|
||
|
== Description
|
||
|
|
||
|
[source,erlang]
|
||
|
----
|
||
|
set_resp_cookie(Name, Value, Req :: cowboy_req:req())
|
||
|
-> set_resp_cookie(Name, Value, [], Req)
|
||
|
|
||
|
set_resp_cookie(Name, Value, Opts, Req :: cowboy_req:req())
|
||
|
-> Req
|
||
|
|
||
|
Name :: iodata() %% case sensitive
|
||
|
Value :: iodata() %% case sensitive
|
||
|
Opts :: cow_cookie:cookie_opts()
|
||
|
----
|
||
|
|
||
|
// @todo I am not particularly happy about the fact that the name is iodata().
|
||
|
|
||
|
Set a cookie to be sent with the response.
|
||
|
|
||
|
Note that cookie names are case sensitive.
|
||
|
|
||
|
== Arguments
|
||
|
|
||
|
Name::
|
||
|
|
||
|
Cookie name.
|
||
|
|
||
|
Value::
|
||
|
|
||
|
Cookie value.
|
||
|
|
||
|
Opts::
|
||
|
|
||
|
Optional cookie options.
|
||
|
|
||
|
Req::
|
||
|
|
||
|
The Req object.
|
||
|
|
||
|
== Return value
|
||
|
|
||
|
A new Req object is returned.
|
||
|
|
||
|
The returned Req object must be used from that point onward,
|
||
|
otherwise the cookie will not be sent in the response.
|
||
|
|
||
|
== Changelog
|
||
|
|
||
|
* *2.0*: `set_resp_cookie/3` introduced as an alias to `set_resp_cookie/4` with no options.
|
||
|
* *1.0*: Function introduced.
|
||
|
|
||
|
== Examples
|
||
|
|
||
|
.Set a session cookie
|
||
|
[source,erlang]
|
||
|
----
|
||
|
SessionID = base64:encode(crypto:strong_rand_bytes(32)),
|
||
|
Req = cowboy_req:set_resp_cookie(<<"sessionid">>, SessionID, Req0).
|
||
|
----
|
||
|
|
||
|
.Set a cookie with an expiration time
|
||
|
[source,erlang]
|
||
|
----
|
||
|
Req = cowboy_req:set_resp_cookie(<<"lang">>, <<"fr-FR">>, [
|
||
|
{max_age, 3600}
|
||
|
], Req0).
|
||
|
----
|
||
|
|
||
|
.Delete a cookie
|
||
|
[source,erlang]
|
||
|
----
|
||
|
Req = cowboy_req:set_resp_cookie(<<"sessionid">>, <<>>, [
|
||
|
{max_age, 0}
|
||
|
], Req0).
|
||
|
----
|
||
|
|
||
|
.Set a cookie for a specific domain and path
|
||
|
[source,erlang]
|
||
|
----
|
||
|
Req = cowboy_req:set_resp_cookie(<<"inaccount">>, <<"1">>, [
|
||
|
{domain, "my.example.org"},
|
||
|
{path, "/account"}
|
||
|
], Req0).
|
||
|
----
|
||
|
|
||
|
.Restrict a cookie to HTTPS
|
||
|
[source,erlang]
|
||
|
----
|
||
|
SessionID = base64:encode(crypto:strong_rand_bytes(32)),
|
||
|
Req = cowboy_req:set_resp_cookie(<<"sessionid">>, SessionID, [
|
||
|
{secure, true}
|
||
|
], Req0).
|
||
|
----
|
||
|
|
||
|
.Restrict a cookie to HTTP
|
||
|
[source,erlang]
|
||
|
----
|
||
|
SessionID = base64:encode(crypto:strong_rand_bytes(32)),
|
||
|
Req = cowboy_req:set_resp_cookie(<<"sessionid">>, SessionID, [
|
||
|
{http_only, true}
|
||
|
], Req0).
|
||
|
----
|
||
|
|
||
|
== See also
|
||
|
|
||
|
link:man:cowboy_req(3)[cowboy_req(3)],
|
||
|
link:man:cowboy_req:set_resp_header(3)[cowboy_req:set_resp_header(3)],
|
||
|
link:man:cowboy_req:reply(3)[cowboy_req:reply(3)],
|
||
|
link:man:cowboy_req:stream_reply(3)[cowboy_req:stream_reply(3)]
|