This commit is contained in:
Chocobozzz
2019-08-13 08:43:37 +02:00
committed by Thomas Citharel
parent ac1dab0fc0
commit a007160480
10 changed files with 85 additions and 93 deletions

View File

@@ -231,11 +231,11 @@ defmodule Mobilizon.Users do
"""
def authenticate(%{user: user, password: password}) do
# Does password match the one stored in the database?
case Argon2.verify_pass(password, user.password_hash) do
true ->
# Yes, create and return the token
with {:ok, tokens} <- generate_tokens(user), do: {:ok, tokens}
with true <- Argon2.verify_pass(password, user.password_hash),
# Yes, create and return the token
{:ok, tokens} <- generate_tokens(user) do
{:ok, tokens}
else
_ ->
# No, return an error
{:error, :unauthorized}
@@ -252,22 +252,16 @@ defmodule Mobilizon.Users do
end
end
def generate_access_token(user) do
defp generate_access_token(user) do
with {:ok, access_token, _claims} <-
MobilizonWeb.Guardian.encode_and_sign(user, %{},
token_type: "access",
ttl: {5, :seconds}
) do
MobilizonWeb.Guardian.encode_and_sign(user, %{}, token_type: "access") do
{:ok, access_token}
end
end
def generate_refresh_token(user) do
with {:ok, refresh_token, _claims} <-
MobilizonWeb.Guardian.encode_and_sign(user, %{},
token_type: "refresh",
ttl: {30, :days}
) do
MobilizonWeb.Guardian.encode_and_sign(user, %{}, token_type: "refresh") do
{:ok, refresh_token}
end
end

View File

@@ -89,9 +89,7 @@ defmodule MobilizonWeb.Resolvers.User do
) do
with {:ok, user, _claims} <- MobilizonWeb.Guardian.resource_from_token(refresh_token),
{:ok, _old, {exchanged_token, _claims}} <-
MobilizonWeb.Guardian.exchange(refresh_token, ["access", "refresh"], "access",
ttl: {1, :days}
),
MobilizonWeb.Guardian.exchange(refresh_token, ["access", "refresh"], "access"),
{:ok, refresh_token} <- Users.generate_refresh_token(user) do
{:ok, %{access_token: exchanged_token, refresh_token: refresh_token}}
else