Guardian.Plug.current_resource(conn) возвращает ноль
Я обновляю Guardian из v0.14
в v1.0
,
Я следую руководству по обновлению со страницы официального опекуна github и столкнулся с одной проблемой.
Для обновления я немного изменил логику аутентификации.
От:
case Myapp.Session.authenticate(session_params) do
{:ok, user} ->
{:ok, jwt, _full_claims} = user |> Guardian.encode_and_sign(:token)
conn
|> put_status(:created)
|> render("show.json", jwt: jwt, user: user)
:error ->
conn
|> put_status(:unprocessable_entity)
|> render("error.json")
end
Для того, чтобы:
case Myapp.Session.authenticate(session_params) do
{:ok, user} ->
{:ok, jwt, _full_claims} = Core.Guardian.encode_and_sign(user)
conn
|> put_status(:created)
|> render("show.json", jwt: jwt, user: user)
:error ->
conn
|> put_status(:unprocessable_entity)
|> render("error.json")
end
И я получил nil
от Guardian.Plug.current_resource(conn)
... для решения этой проблемы я храню token
в передней части localStorage
и передать его, чтобы получить информацию о пользователе.
Но я все еще думаю, что лучше получать информацию от пользователей current_resource
, Как мне этого добиться?
-- РЕДАКТИРОВАТЬcurrent_user_controller.ex
def show(conn, _) do
user = Myapp.Guardian.Plug.current_resource(conn)
conn
|> put_status(:ok)
|> render("show.json", user: user)
end