Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

next auth. how to get google id_token

In short: How to get google id token from nextauth?

Details: I do authorization through Google and after that I have to verify the response from Google on the server, after which the server will return its access token to me. A friend who builds backend tells me that he needs an id_token and he will check it with google-auth. No matter how I try to set up the callback, I can't get the id_token. I only get the session token in cookie and nothing else.

If it is possible to do this without id_token, please write that as well.

like image 571
user510841 Avatar asked Oct 24 '25 17:10

user510841


1 Answers

Here's a snippet of how to achieve that. You have to fetch the account details returned from google using the callback:

 callbacks: {
    async jwt({ token, user, account }) {
      // Persist the OAuth access_token to the token right after signin
    
      if (account) {
        token.id_token = account.id_token;
      }
      return token;
    },
    async session({ session, token }) {
      // Send properties to the client, like an access_token from a provider.
      session.id_token = token.id_token;
      return session;
    },
  },

So now, you can retrieve the token by doing something like:

  const { data: session } = useSession();
  console.log(session.id_token)

So basically, what we just did was access the id_token provided by google. We accessed it from account and now we are passing to the session object so we can use in the client side of our application.

PS> Check your terminal during authentication with google. You'll see a log of the profile object and account object inside the terminal.

like image 50
ninsau Avatar answered Oct 26 '25 06:10

ninsau



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!