Abstract setting the cookie for the client request.
parent
c9fcd47064
commit
38d8e29734
|
@ -25,7 +25,8 @@ from the dudeswave database.
|
|||
-include_lib("storage/include/storage.hrl").
|
||||
|
||||
-export([authenticate/2, details/1, new/3,
|
||||
update/4, delete/1, logout/2, auth_cookies/1, invalidate_cookies/1]).
|
||||
update/4, delete/1, logout/2, auth_cookies/1, invalidate_cookies/1,
|
||||
set_auth_cookies/4]).
|
||||
|
||||
-doc """
|
||||
Verify a session with an existing cookie.
|
||||
|
@ -266,6 +267,20 @@ auth_cookies(Req) ->
|
|||
|
||||
{User, Cookie}.
|
||||
|
||||
-doc """
|
||||
Invalidate the cookies in the passed request.
|
||||
|
||||
Spec:
|
||||
|
||||
```
|
||||
-spec invalidate_cookies(Req) -> Req0 when
|
||||
Req :: cowboy_req:req(),
|
||||
Req0 :: cowboy_req:req().
|
||||
```
|
||||
|
||||
A new request `Req0` is returned to the caller with the cookies zeroed and
|
||||
completely invalidated.
|
||||
""".
|
||||
-spec invalidate_cookies(Req) -> Req0 when
|
||||
Req :: cowboy_req:req(),
|
||||
Req0 :: cowboy_req:req().
|
||||
|
@ -276,4 +291,35 @@ invalidate_cookies(Req) ->
|
|||
Req1 = cowboy_req:set_resp_cookie(<<"dudename">>, <<"">>, Req0,
|
||||
#{max_age => 0}),
|
||||
|
||||
Req1.
|
||||
Req1.
|
||||
|
||||
-doc """
|
||||
Set the authentication cookies for the provided clien request
|
||||
|
||||
Spec:
|
||||
|
||||
```
|
||||
-spec set_auth_cookies(Req, User, Cookie, Validity) -> Req0 when
|
||||
Req :: cowboy_req:req(),
|
||||
User :: binary(),
|
||||
Cookie :: binary(),
|
||||
Validity :: pos_integer(),
|
||||
Req0 :: cowboy_req:req().
|
||||
```
|
||||
|
||||
A new request object `Req0`is returned, with the user and auth cookies set.
|
||||
""".
|
||||
-spec set_auth_cookies(Req, User, Cookie, Validity) -> Req0 when
|
||||
Req :: cowboy_req:req(),
|
||||
User :: binary(),
|
||||
Cookie :: binary(),
|
||||
Validity :: pos_integer(),
|
||||
Req0 :: cowboy_req:req().
|
||||
|
||||
set_auth_cookies(Req, User, Cookie, Validity) ->
|
||||
Req0 = cowboy_req:set_resp_cookie(<<"dudeauth">>, Cookie, Req,
|
||||
#{max_age => Validity}),
|
||||
Req1 = cowboy_req:set_resp_cookie(<<"dudename">>, User, Req0,
|
||||
#{max_age => Validity}),
|
||||
|
||||
Req1.
|
||||
|
|
|
@ -156,11 +156,7 @@ login(Req, State) ->
|
|||
|
||||
case dudeswave_auth:authenticate(User, {password, Pass}) of
|
||||
{true, Cookie, Validity} ->
|
||||
Req1 = cowboy_req:set_resp_cookie(<<"dudeauth">>, Cookie, Req0,
|
||||
#{max_age => Validity}),
|
||||
Req2 = cowboy_req:set_resp_cookie(<<"dudename">>, User, Req1,
|
||||
#{max_age => Validity}),
|
||||
{true, Req2, State};
|
||||
{true, dudeswave_auth:set_auth_cookies(Req, User, Cookie, Validity), State};
|
||||
false ->
|
||||
{false, Req0, State};
|
||||
{error, _} ->
|
||||
|
|
Loading…
Reference in New Issue