Packages
Provides a full user authentication experience for an API. Includes login,logout,register,forgot password, forgot username, confirmation email and all that other good stuff. Includes plug for checking for authenticated users and macro for generating the required routes.
Current section
Files
Jump to
Current section
Files
lib/refresh_token.ex
defmodule AccessPass.RefreshToken do
@moduledoc """
RefreshToken communicated internally with a GenServer implimentation of your
applications valid refresh tokens.
"""
@server_name :refresh_token
@doc """
will add a new refresh token and return a token object
Returns `{
refresh_token: refresh_token,
access_token: access_token,
type: "basic",
access_expire_in: access_expire_in(),
refresh_expire_in: expire_in
}`.
## Examples
iex> AccessPass.RefreshToken.add("ODhhMDgzYwfefdfeC00YjgyLWFiZGMtZTJjOWZiMzJjODhi",${},0)
{
"type":"basic",
"refresh_token":"MjNmYzgzNGMtMGM3MS00YTA4LTkxMWMtNDEyODU3Yzk2ZTgy",
"refresh_expire_in":1200,
"access_token":"ODhhMDgzYjctZTE3OC00YjgyLWFiZGMtZTJjOWZiMzJjODhi",
"access_expire_in":600
}
"""
def add(unq_id, meta, revokeAt) do
GenServer.call(@server_name, {:add, unq_id, meta, revokeAt})
end
@doc """
calling will revoke a given refresh token
Returns `{:ok}`.
## Examples
iex> AccessPass.RefreshToken.revoke("ODhhMDgzYwfefdfeC00YjgyLWFiZGMtZTJjOWZiMzJjODhi")
{:ok}
"""
def revoke(refresh_token) do
GenServer.call(@server_name, {:revoke, refresh_token})
end
@doc """
calling will refresh for a new access token
Returns `{ok: token}`.
## Examples
iex> AccessPass.RefreshToken.refresh("ODhhMDgzYwfefdfeC00YjgyLWFiZGMtZTJjOWZiMzJjODhi")
{ok: "ODhhMDgzYwfefdfeC00YjgyLWFiZGMtZTJjOWZiMzJjODhi"}
"""
def refresh(refresh_token) do
GenServer.call(@server_name, {:refresh, refresh_token})
end
end