Abstract reading the login data from the request.
parent
f9d3c5fa4b
commit
b3cdc8ee45
|
@ -26,7 +26,7 @@ from the dudeswave database.
|
||||||
|
|
||||||
-export([authenticate/2, details/1, new/3,
|
-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]).
|
set_auth_cookies/4, read_login_data/1]).
|
||||||
|
|
||||||
-doc """
|
-doc """
|
||||||
Verify a session with an existing cookie.
|
Verify a session with an existing cookie.
|
||||||
|
@ -323,3 +323,27 @@ set_auth_cookies(Req, User, Cookie, Validity) ->
|
||||||
#{max_age => Validity}),
|
#{max_age => Validity}),
|
||||||
|
|
||||||
Req1.
|
Req1.
|
||||||
|
|
||||||
|
-doc """
|
||||||
|
Spec:
|
||||||
|
|
||||||
|
```
|
||||||
|
-spec read_login_data(Req) -> {User, Pass, Req0} when
|
||||||
|
Req :: cowboy_req:req(),
|
||||||
|
User :: binary(),
|
||||||
|
Pass :: binary(),
|
||||||
|
Req0 :: cowboy_req:req().
|
||||||
|
```
|
||||||
|
Read the login details from the `Req` body and return `User` and `Password`.
|
||||||
|
""".
|
||||||
|
-spec read_login_data(Req) -> {User, Pass, Req0} when
|
||||||
|
Req :: cowboy_req:req(),
|
||||||
|
User :: binary(),
|
||||||
|
Pass :: binary(),
|
||||||
|
Req0 :: cowboy_req:req().
|
||||||
|
|
||||||
|
read_login_data(Req) ->
|
||||||
|
{ok, Data, Req0} = cowboy_req:read_body(Req),
|
||||||
|
#{<<"user">> := User, <<"password">> := Pass} = json:decode(Data),
|
||||||
|
|
||||||
|
{User, Pass, Req0}.
|
|
@ -151,8 +151,7 @@ delete_completed(Req, State) -> {false, Req, State}.
|
||||||
%
|
%
|
||||||
|
|
||||||
login(Req, State) ->
|
login(Req, State) ->
|
||||||
{ok, Data, Req0} = cowboy_req:read_body(Req),
|
{User, Pass, Req0} = dudeswave_auth:read_login_data(Req),
|
||||||
#{<<"user">> := User, <<"password">> := Pass} = json:decode(Data),
|
|
||||||
|
|
||||||
case dudeswave_auth:authenticate(User, {password, Pass}) of
|
case dudeswave_auth:authenticate(User, {password, Pass}) of
|
||||||
{true, Cookie, Validity} ->
|
{true, Cookie, Validity} ->
|
||||||
|
|
Loading…
Reference in New Issue