mirror of
https://github.com/kevin-DL/phoenix_api_template.git
synced 2026-01-13 19:35:30 +00:00
Login
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
defmodule PhoenixApiTemplateWeb.UserController do
|
||||
use PhoenixApiTemplateWeb, :controller
|
||||
|
||||
alias PhoenixApiTemplateWeb.Auth.ErrorResponse.Unauthorized
|
||||
alias PhoenixApiTemplateWeb.Auth.Guardian
|
||||
alias PhoenixApiTemplate.Accounts
|
||||
alias PhoenixApiTemplate.Accounts.User
|
||||
@@ -24,6 +25,18 @@ defmodule PhoenixApiTemplateWeb.UserController do
|
||||
end
|
||||
end
|
||||
|
||||
def sign_in(conn, %{"email" => email, "password" => password}) do
|
||||
case Guardian.authenticate(email, password) do
|
||||
{:ok, user, token} ->
|
||||
conn
|
||||
|> put_status(:ok)
|
||||
|> render("user_token.json", %{user: user, token: token})
|
||||
|
||||
{:error, :unauthorized} ->
|
||||
raise Unauthorized, message: "Invalid credentials"
|
||||
end
|
||||
end
|
||||
|
||||
def show(conn, %{"id" => id}) do
|
||||
user = Accounts.get_user!(id)
|
||||
render(conn, "show.json", user: user)
|
||||
|
||||
Reference in New Issue
Block a user