View Source MaatFeather.Auth.Token (maat_feather v0.1.0)

token

Token

# config/config.exs
config :maat_feather, MaatFeather.Auth.Token,
# The algorithm to use for generating the token.
alg: "RS256",
# The expiration time of the token.
exp: :timer.minutes(15),
# The issuer of the token.
iss: "maat_feather"

Link to this section Summary

Functions

This function decodes a token into a user.

This function encodes a user into a token.

This function refresh a token.

Link to this section Functions

@spec decode(binary()) :: {:ok, map()} | {:error, charlist()}

This function decodes a token into a user.

parameters

Parameters

  • token: the token to decode

examples

Examples

iex> {:ok, claims} = MaatFeather.Auth.Token.decode(token)
{:ok,
%{
 "exp" => 1660962870,
 "iss" => "maat_feather",
 "kid" => "A6FF4B0E88C95C0C",
 "sub" => "2D2D2D2D2D424547494E205055424C4943204B45592D2D2D2D2D0A4D4947664D413047435371475349623344514542415155414134474E4144434269514B42675143377138674E625069734F317332677A2F34616639626F4164630A6A314177614B71763932454F7364324C36615674415630326B6642437643504F61614B4C6B58546838314B483759322B704951532B764A2B475267565573576D0A504D6965344966766E575A52506E4F594E355A63536C5A4F4E2F39326E6F4C6F72633471303958327774526C4D685966783976337146684E58346E48335457470A377041464F3641705836646A4F5A376564774944415141420A2D2D2D2D2D454E44205055424C4943204B45592D2D2D2D2D0A0A"
}}
@spec encode(%MaatFeather.Users.User{
  __meta__: term(),
  address: term(),
  email: term(),
  inserted_at: term(),
  password: term(),
  password_hash: term(),
  private_key: term(),
  public_key: term(),
  role: term(),
  updated_at: term(),
  username: term()
}) :: {:ok, binary(), map()} | {:error, binary()}

This function encodes a user into a token.

parameters

Parameters

  • user: the user to encode

examples

Examples

iex> {:ok, token, claims} = MaatFeather.Auth.Token.encode(user)
{:ok,
"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NjAwNzMxNzcsImlzcyI6Im1hYXRfZmVhdGhlciIsImtpZCI6IkQ1NTVBMDE0OTdBRkI3NkYiLCJzdWIiOiIyRDJEMkQyRDJENDI0NTQ3NDk0RTIwNTA1NTQyNEM0OTQzMjA0QjQ1NTkyRDJEMkQyRDJEMEE0RDQ5NDc2NjRENDEzMDQ3NDM1MzcxNDc1MzQ5NjIzMzQ0NTE0NTQyNDE1MTU1NDE0MTM0NDc0RTQxNDQ0MzQyNjk1MTRCNDI2NzUxNDM2RjM2NUEzNTU3NDE0MTM2MzY2NjcyNkQ0MTRENTQzODdBNEY2RTRBNDg2QzU0MzA0MTBBNTA2NjU0Nzc3ODM1NTEzOTQ4NEY0RDRDNzM1NTU0NzI2NTY2NDM2MjJCNzc3MjY0MzU0ODU1NEIzMTQyNEYzMjRBNzY2MjZENzMzMjY5NzQ2QTZENjc2ODY5NzQ1ODU2NkE0MTU5NDIzMjcyNDkyQjM2Mzc2NzZENTU3NjMyNTIwQTQ5NzA2NjcyNDU1ODM5NTE2NTZBMzM2Rjc4NDY1OTU4NEU0MjU1NjY2NTQ2Nzg1OTM2NjE1MTMzNzE2NTc2NkE3NDU3NjE1QTUxNjQ1Nzc5NkM0MTJCN0E2RjVBNTMzOTMxNEM0MjZFNTY2RDcyNEM2MjY2NkEzNjM3NDM3MDUzMEEzNTZGNDI0QjUxNEU2QjZENjE2NzUzMzM1MjZCNzY3OTQ1NTE0OTQ0NDE1MTQxNDIwQTJEMkQyRDJEMkQ0NTRFNDQyMDUwNTU0MjRDNDk0MzIwNEI0NTU5MkQyRDJEMkQyRDBBMEEifQ.L5yGWXAApVFVIcm-Vijqt1LvOGYO9dBb4nqM15VJe-Al91IvXPZlwb15EK5QXujbCo2-S_gLOL9eBiId4ogfNNqavSO82wHUyTCh6akhTT4QYMEYrQgvyYuKW78DmAajhXH1R1NY9IG-JnWzNlEyrSeVZf3nOuPyriWkQ7kTbDY",
%{
 "exp" => 1660073177,
 "iss" => "maat_feather",
 "kid" => "D555A01497AFB76F",
 "sub" => "2D2D2D2D2D424547494E205055424C4943204B45592D2D2D2D2D0A4D4947664D413047435371475349623344514542415155414134474E4144434269514B426751436F365A35574141363666726D414D54387A4F6E4A486C5430410A5066547778355139484F4D4C73555472656643622B7772643548554B31424F324A76626D733269746A6D6768697458566A4159423272492B3637676D557632520A4970667245583951656A336F784659584E42556665467859366151337165766A7457615A516457796C412B7A6F5A5339314C426E566D724C62666A36374370530A356F424B514E6B6D61675333526B767945514944415141420A2D2D2D2D2D454E44205055424C4943204B45592D2D2D2D2D0A0A"
}}
@spec refresh(binary()) ::
  {:ok, {binary(), map()}, {binary(), map()}} | {:error, charlist()}

This function refresh a token.

parameters

Parameters

  • token: the token to refresh

examples

Examples

iex> {:ok, {old_token, old_claims}, {new_token, new_claims}} = MaatFeather.Auth.Token.refresh(token)
{:ok,

{"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NjA5NzU4MjYsImlzcyI6Im1hYXRfZmVhdGhlciIsImtpZCI6IjE3MzJGOEI2N0Q3QjUxMjgiLCJzdWIiOiIyRDJEMkQyRDJENDI0NTQ3NDk0RTIwNTA1NTQyNEM0OTQzMjA0QjQ1NTkyRDJEMkQyRDJEMEE0RDQ5NDc2NjRENDEzMDQ3NDM1MzcxNDc1MzQ5NjIzMzQ0NTE0NTQyNDE1MTU1NDE0MTM0NDc0RTQxNDQ0MzQyNjk1MTRCNDI2NzUxNDMzMzZDMzM0RjRENkQ0MjU1NDQ1QTU3MkY1NzcyNkQzMDY3NkUzNzcwNEU2RjZGNDgzMTBBMzg2RjYzNzU2RTdBN0EzNTY2NjE3MzVBNzIzNTZFMzg2NTMzMkY0RTUyNTI2NzRCNTI1NTM4MzU0OTM5MkY0MTdBNTY0QzQxNEU0NDczNEI1NDMxNzQzMTY2NUE2ODQ2NTA2ODM3NkE2OTRENTI1MTU4NDkzNTMyMzYzNjUyNjkwQTMzNkM0ODM3NDMzNjQ2NTA3NDcwNkUyQjc1NkU0QzQyNEM3NzdBMzI1ODcyMzY0QjM0MkYzODcwNkE2ODQ5NzA3QTMyNDY3ODRDNEI0RjMxNTQ2ODM3NDE0OTZCNTU0OTQ1MzE2OTY5MzMzMjU2NkU0RjQ2NTM1ODU2MzQ2RTYxMEE3NTQ3Njk0Mjc5NkY0NzJGMzE3NDcyNzE1NDUxNjgzMzZENzc0OTQ0NDE1MTQxNDIwQTJEMkQyRDJEMkQ0NTRFNDQyMDUwNTU0MjRDNDk0MzIwNEI0NTU5MkQyRDJEMkQyRDBBMEEifQ.mRhm2oX_wiKf7K03pax16g6HhvHml5ZgN_X21bbtmr7qiyfPMTMD85kUZbIZzlhKxc1dJKuelbSKs_sKCD2G1GbVIthCwc2FU1httUXxheM4rrMtm8JifY58oRsYM-dyBvhK2B1I4gpWej7lsLV_OYVwsWAwbTeYEwxFN1ML11k",
%{
  "exp" => 1660975826,
  "iss" => "maat_feather",
  "kid" => "1732F8B67D7B5128",
  "sub" => "2D2D2D2D2D424547494E205055424C4943204B45592D2D2D2D2D0A4D4947664D413047435371475349623344514542415155414134474E4144434269514B42675143336C334F4D6D4255445A572F57726D30676E37704E6F6F48310A386F63756E7A7A356661735A72356E3865332F4E5252674B5255383549392F417A564C414E44734B54317431665A68465068376A694D525158493532363652690A336C48374336465074706E2B756E4C424C777A325872364B342F38706A6849707A3246784C4B4F3154683741496B5549453169693332566E4F46535856346E610A75476942796F472F31747271545168336D774944415141420A2D2D2D2D2D454E44205055424C4943204B45592D2D2D2D2D0A0A"
}},
{"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NjA5NzU4NTMsImlzcyI6Im1hYXRfZmVhdGhlciIsImtpZCI6IjE3MzJGOEI2N0Q3QjUxMjgiLCJzdWIiOiIyRDJEMkQyRDJENDI0NTQ3NDk0RTIwNTA1NTQyNEM0OTQzMjA0QjQ1NTkyRDJEMkQyRDJEMEE0RDQ5NDc2NjRENDEzMDQ3NDM1MzcxNDc1MzQ5NjIzMzQ0NTE0NTQyNDE1MTU1NDE0MTM0NDc0RTQxNDQ0MzQyNjk1MTRCNDI2NzUxNDMzMzZDMzM0RjRENkQ0MjU1NDQ1QTU3MkY1NzcyNkQzMDY3NkUzNzcwNEU2RjZGNDgzMTBBMzg2RjYzNzU2RTdBN0EzNTY2NjE3MzVBNzIzNTZFMzg2NTMzMkY0RTUyNTI2NzRCNTI1NTM4MzU0OTM5MkY0MTdBNTY0QzQxNEU0NDczNEI1NDMxNzQzMTY2NUE2ODQ2NTA2ODM3NkE2OTRENTI1MTU4NDkzNTMyMzYzNjUyNjkwQTMzNkM0ODM3NDMzNjQ2NTA3NDcwNkUyQjc1NkU0QzQyNEM3NzdBMzI1ODcyMzY0QjM0MkYzODcwNkE2ODQ5NzA3QTMyNDY3ODRDNEI0RjMxNTQ2ODM3NDE0OTZCNTU0OTQ1MzE2OTY5MzMzMjU2NkU0RjQ2NTM1ODU2MzQ2RTYxMEE3NTQ3Njk0Mjc5NkY0NzJGMzE3NDcyNzE1NDUxNjgzMzZENzc0OTQ0NDE1MTQxNDIwQTJEMkQyRDJEMkQ0NTRFNDQyMDUwNTU0MjRDNDk0MzIwNEI0NTU5MkQyRDJEMkQyRDBBMEEifQ.J1hxlZ5liJ1GjgeQ3hnAHRTtlTTyZoMg9GWsgmelDEyN4TC66E0q9-L7aDFYwqoszBnhgQaoynQhlBGnBlaas2uFTiQgRCrUc18OEARsTfXs67GyMrka60duWrP8BwEeJZS8GT51VMNlZzzL2MKTLvjlQJwq11u_gmBgiy65Wt4",
%{
  "exp" => 1660975853,
  "iss" => "maat_feather",
  "kid" => "1732F8B67D7B5128",
  "sub" => "2D2D2D2D2D424547494E205055424C4943204B45592D2D2D2D2D0A4D4947664D413047435371475349623344514542415155414134474E4144434269514B42675143336C334F4D6D4255445A572F57726D30676E37704E6F6F48310A386F63756E7A7A356661735A72356E3865332F4E5252674B5255383549392F417A564C414E44734B54317431665A68465068376A694D525158493532363652690A336C48374336465074706E2B756E4C424C777A325872364B342F38706A6849707A3246784C4B4F3154683741496B5549453169693332566E4F46535856346E610A75476942796F472F31747271545168336D774944415141420A2D2D2D2D2D454E44205055424C4943204B45592D2D2D2D2D0A0A"
}}}