nextauthjs / nextauthjs/next-auth
Yandex provider + Adaptor issue (invalid_grant(code has expired))
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 28.4k
- Forks
- 4k
- PR merge metrics
- No merged PRs in 30d
Description
Provider type
Yandex
Environment
System:
OS: Windows 10 10.0.19045
CPU: (8) x64 AMD Ryzen 5 1400 Quad-Core Processor
Memory: 11.94 GB / 23.93 GB
Binaries:
Node: 20.16.0 - C:\Program Files\nodejs\node.EXE
Yarn: 1.22.21 - ~\AppData\Roaming\npm\yarn.CMD
npm: 10.8.1 - C:\Program Files\nodejs\npm.CMD
Browsers:
Edge: Chromium (127.0.2651.74)
Internet Explorer: 11.0.19041.4355
npmPackages:
@auth/core: ^0.34.2 => 0.34.2
@auth/hasura-adapter: ^1.4.2 => 1.4.2
next: ^14.1.0 => 14.1.0
next-auth: ^4.24.7 => 4.24.7
react: ^18 => 18.3.1
Reproduction URL
https://github.com/KhekhaevSalekh/next-auth-Yandex-issue
Describe the issue
When I use Yandex provider with next-auth all goes well. But when I connect hasura adapter i get error.
The error I get is (invalid_grant(code has expired)).
When a new user presses "Sign in" by Yandex he does not go to home page. He appears at sign-in page. Also there is not next-auth.session-token coockie.
In the same time all necessary information is written in the database.
When he presses "Sign in" by Yandex second time he is on the home page.
With Google and GitHub authorization everything is good.
I have checked this behavior on vercel and locally.
How to reproduce
Just start project from Reproduction URL and try to sighin with yandex.
Expected behavior
Normal sign in flow without this error.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the linked reproduction project and trace the Yandex OAuth flow when the Hasura adapter is enabled, comparing the first and second sign-in attempts. Confirm the cause of invalid_grant and verify that the first attempt completes without the error and sets the next-auth.session-token cookie.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- nextjs, node.js, react, typescript
- Domain
- authentication, backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100