[https://github.com/bryanjos/joken](https://github.com/bryanjos/joken) - A JSON Web Token (JWT) Library ### 1. Закодировать JWT - подпись секретным текстовым ключем "my_secret_key" ```elixir token = %{user_id: 123} |> Joken.token() |> Joken.with_signer(Joken.hs256("my_secret_key")) |> Joken.sign() |> Joken.get_compact() ``` Результат - токен ``` "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxMjN9.czVgXnZv56oliGbbFV3HZMwrJsZEWgpoZO13yxgjPuA" ``` ### 2. Расшифровать токен без проверки ```elixir token |> Joken.token() |> Joken.peek() ``` Результат - данные ```elixir %{"user_id" => 123} ``` ### 3. Проверить подпись, зная текстовый секретный ключ ```elixir token \ |> Joken.token() \ |> Joken.with_signer(Joken.hs256("my_secret_key")) \ |> Joken.verify!() ``` Результат - {:ok, данные} ```elixir {:ok, %{"user_id" => 123}} ```