mhanberg
Implementing API Authentication with Guardian in Phoenix
Hi! I recently finished adding authentication to my Phoenix API, so I wanted to share what I learned.
I haven’t created authentication for an API only application before, so not using sessions/cookies was a little confusing at first. I hope this post can help others who haven’t writter an API before!
Thanks!
Most Liked
mhanberg
The documentation for the configuration you’re looking for is here https://github.com/ueberauth/guardian#jwt-configuration. These options go in the configuration in config.ex
The default TTL (time to live) for the JWT is 4 weeks and I believe you need to manually refresh the token. My post doesn’t detail that aspect 
soundstruck
Also have a look at https://github.com/ueberauth/guardian_db for a way to revoke tokens issued.
mhanberg
I’m on a business trip right now, I’ll reply to this when I get some free
time. But in the meantime, look into the Phoenix Fallback Controller
functionality.
Relevant blog ->
https://swanros.com/2017/03/04/action-fallback-contexts-phoenix1-3-tiny-controllers/amp/
acrolink
Thanks @kokolegorille, based on your idea I have found that the code block needed to handle wrong email address (non existent in DB) is:
def call(conn, :nil) do
conn
|> put_status(:unauthorized)
|> json(%{status: "unauthorized"})
end







