-
-
Notifications
You must be signed in to change notification settings - Fork 3.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Type error in session callback for user
and token
properties
#9633
Comments
This seems to be related to microsoft/TypeScript#14094. Minimum code: type Obj1 = { a: string, b: string }
type Obj2 = { a: string, c: string }
const func = (args: Obj1 | Obj2) => {
args.b = ""
^
Property 'b' does not exist on type 'Obj1 | Obj2'.
Property 'b' does not exist on type 'Obj2'.
} Using |
I have same problem |
FYI for a quick fix, just manually set the types while setting user as optional, e.g. import NextAuth, { type Session, type User } from "next-auth";
export const auth = NextAuth({
callbacks: {
async session({ session, user }: { session: Session; user?: User }) {
if (user) {
// do whatever here
}
return session;
},
},
}); |
Taking in consideration what jeremy-code posted, this is how I did it: import NextAuth, { Session, User } from "next-auth";
} |
Same here, when trying to access the token in the session callback using the jwt strategy, it wont let me access the second part of the params which included the token. Only present in authjs 5 beta 5, not in authjs 5 beta 4. |
|
I am also having the same error |
My experience is that it works on 5.0.0-beta.4 |
In my case I solved it as follows : This way, there is no longer an error in the token parameter of the session object and I can even add more fields if I want within the token in addition to those that already come by default. |
Environment
npmPackages:
@auth/core: ^0.* => 0.20.0
@auth/drizzle-adapter: ^0.* => 0.3.14
@auth/sveltekit: ^0.* => 0.5.2
Node: 20.3.1 - /opt/homebrew/bin/node
Reproduction URL
https://github.com/thomasmol/authjsbugs
Describe the issue
related to #9437
i get a type error in the session callback for the
user
ortoken
property:error claims
user
does not exist, while it does, although it depends on the database strategy used.error located here on the
user
property inhooks.server.ts
:not sure if useful but this is copilot explaining:
"The error message you're seeing is due to TypeScript not being able to determine the exact type of the object that's being passed to the session callback. The type of the object is a union type, which means it could be one of several types. In this case, it could be { session: Session; user: AdapterUser; } or { session: Session; token: JWT; }.
The user property exists on the first type, but not on the second. When you try to access user.id, TypeScript can't guarantee that user will always be present, hence the error."
How to reproduce
install auth core + auth sveltekit, create hooks.server.ts and add a the session callback. type error occurs on user and token, but not the session property.
Expected behavior
no type errors
The text was updated successfully, but these errors were encountered: