ycv005

ycv005

I am getting the JWT Token from Google/Gmail Oath and now, I want to decode it using the Joken library. Following are the step I have done-

1- Added the code in mix.exs

{:joken, "~> 2.0"},

2- Added the code in config/dev.exs

config :joken, default_signer: "secret"

3- In new file, make a module

defmodule Apollo.Token do
 use Joken.Config

 def decode(token) do
   token
   |> Joken.token()
   |> Joken.peek()
 end
end,

4- Now, calling module from this like -
struct = Apollo.Token.decode(token)

Due to the 4th step, I am getting error that is Gettting error function Joken.token/1 is undefined or private. Your response will be highly appreciable.

Showing Posts 1 to 9

alexiss

alexiss

did you run mix deps.get after step 1?

alexiss

alexiss

Also I can’t find token/1 function in module Joken in docs

NobbZ

NobbZ

It was available in 1.0… it seems as if someone mixed current and outdated instructions.

al2o3cr

al2o3cr

The code in your decode function appears to be written for Joken 1.x - Joken.token exists there.

The documentation now warns against using peek_* functions in most cases, as they don’t validate the signature. OTOH, the Google docs for OpenID Connect suggest it may not be a hard requirement.

Ansvas

Ansvas

ok, can you please guide me- how i can do the same in version 2.0

ycv005

ycv005 OP

Currently, I am using version 2.0. How can I do with this version?

benwilson512

benwilson512

Author of Craft GraphQL APIs in Elixir with Absinthe

Can you show what you’ve tried so far within the Joken 2.0 docs?

Ansvas

Ansvas

signer = Joken.Signer.create("HS256", "secret")

{:ok, token_with_default_claims} = MyApp.Token.generate_and_sign(%{}, signer)

extra_claims = %{"user_id" => "some_id"}
token_with_default_plus_custom_claims = MyApp.Token.generate_and_sign!(extra_claims, signer)

{:ok, claims} = MyApp.Token.verify_and_validate(token, signer)

I have used this code and this is running fine. here first i create signer and then used that signer to verify the token, but when i used this signer with id_token(received from Gmail OAuth) this returns me an error. Why i need signer and all because on online platforms(https://www.jsonwebtoken.io/) i am getting json by just pasting the id_token(how i can do the same using joken)

rphl-snts

rphl-snts

To works with JWT and Google,you need to use RS256 instead H256.

signer = Joken.Signer.create("RS256", %{"pem" => id_token})
— All posts loaded —

Where Next? Top

Trending in Questions Top

katta
I having some trouble figuring out if I have set myself too strict of standards for my production server. Currently I can handle 75% of r...
New
achenet
Hello, I’m trying to build a basic Phoenix web-app, and I’d like to use Tailwind. However, when I launch mix phx.server, I get an error...
New
Cxx-mlr
I’m working on a small exercise involving update_in/3, and I came up with this solution: data = %{ name: "Periodic Table", category:...
New
ChrisAmelia
I’ve got trouble wrapping my head around the order in which functions are called in this snippet (from Phoenix’s authentication): toke...
New
dillonoconnor
Is there any way to avoid the Hologram compiler running when using iex? It seems like the front-end code could potentially be disregarded...
New
thiagogsr
** (ArgumentError) expected :max_attempts to be a positive integer, got: {:@, [line: 10, column: 19], [{:max_attempts, [line: 10, column:...
New

Other Trending Topics Top

GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
budgie
A little off-topic, but I feel like people here have a good head on their shoulders. I used to be quite good at making software. Was luc...
New
KristerV
Hey. Is there anyone here who creates agents in their apps? Not talking about using agents, but creating them. I’m finding it pretty diff...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews