fdundjer
11/08/2023, 1:20 PMError: UNKNOWN_USER_ID
at EmailVerificationClaimClass.fetchValue (/Users/f//backend/node_modules/supertokens-node/lib/build/recipe/emailverification/emailVerificationClaim.js:31:27)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
at EmailVerificationClaimClass.build (/Users/f/backend/node_modules/supertokens-node/lib/build/recipe/session/types.js:9:23)
at Object.createNewSessionInRequest (/Users/f/backend/node_modules/supertokens-node/lib/build/recipe/session/sessionRequestFunctions.js:351:24)
at Function.createNewSession (/Users/f/backend/node_modules/supertokens-node/lib/build/recipe/session/index.js:48:16)
at Object.signUpPOST /Users/f/backend/node_modules/supertokens-node/lib/build/recipe/emailpassword/api/implementation.js:561:27)
at Object.emailPasswordSignUpPOST (/Users/f/backend/apps/supertokens-service/src/supertokens/services/recipes/third-party-email-password.overrides.ts:561:22)...
Not sure it this could be the cause, but at the end of emailPasswordSignUp we call
const response = await originalImplementation.emailPasswordSignUp(
input,
);
/* code for fetching external user */
await createUserIdMapping({
superTokensUserId: response.user.id,
externalUserId: external.user.id,
});
response.user.id = external.user.id;
return response;
We are using: image: registry.supertokens.io/supertokens/supertokens-postgresql:7.0rp_st
11/08/2023, 2:06 PMrp_st
11/08/2023, 2:07 PMsattvikc
11/09/2023, 5:35 AMts
emailPasswordSignUp: async (input) => {
const resp = await oI.emailPasswordSignUp(input);
if (resp.status === "OK") {
/* code to fetch external user id */
const externaluserId = 'euid1';
await supertokens.createUserIdMapping({
superTokensUserId: resp.user.id,
externalUserId: externaluserId,
})
resp.user.id = externaluserId;
resp.user.loginMethods[0].recipeUserId = new RecipeUserId(externaluserId);
return resp;
}
return resp;
}
rp_st
11/09/2023, 7:02 AMimport { RecipeUserId } from "supertokens-node";
fdundjer
11/09/2023, 8:49 AMconst accessToken = result.accessToken;
const session = await Session.getSessionWithoutRequestResponse(
accessToken,
undefined,
{
overrideGlobalClaimValidators: () => [],
},
);
const payload = session.getAccessTokenPayload();
expect(payload.name).toEqual(testUserFullName);
const emailVerificationClaim = await session.getClaimValue(
EmailVerificationClaim,
);
expect(emailVerificationClaim).toEqual(true); // THIS FAILS
I've seen that you have added new isVerified
to thirdpartysignups, I'll check what it does. I guess thats the issue.sattvikc
11/09/2023, 9:32 AMfdundjer
11/09/2023, 9:33 AMsattvikc
11/09/2023, 9:34 AMfdundjer
11/09/2023, 9:35 AMreturn Promise.resolve(<UserInfo>{
thirdPartyUserId: testUserThirdPartyId,
email: {
id: testUserEmail1,
isVerified: true,
},
rawUserInfoFromProvider: {
fromUserInfoAPI: {
id: testUserThirdPartyId,
email: testUserEmail1,
},
},
});
sattvikc
11/09/2023, 9:35 AMsattvikc
11/09/2023, 9:35 AMsattvikc
11/09/2023, 9:48 AMts
const resp = await oI.thirdPartySignInUp(input);
if (resp.status === "OK") {
const externalUserId = 'euid2';
await supertokens.createUserIdMapping({
superTokensUserId: resp.user.id,
externalUserId: externalUserId,
})
resp.user.id = externalUserId;
resp.user.loginMethods[0].recipeUserId = new RecipeUserId(externalUserId);
if (input.isVerified) {
const token = await EmailVerification.createEmailVerificationToken(input.tenantId, new RecipeUserId(externalUserId), input.email, input.userContext)
if(token.status == "OK") {
await EmailVerification.verifyEmailUsingToken(input.tenantId, token.token);
}
}
}
return resp;
fdundjer
11/09/2023, 9:49 AMfdundjer
11/09/2023, 9:52 AMsattvikc
11/09/2023, 9:52 AMsattvikc
11/09/2023, 9:53 AMfdundjer
11/09/2023, 9:55 AMfdundjer
11/09/2023, 9:55 AM2023-11-09 10:54:08 09 Nov 2023 09:54:08:037 +0000 | INFO | pid: f3770fe7-5b76-481d-b41e-fc5196ea59fe | [http-nio-0.0.0.0-3567-exec-1] thread | io.supertokens.webserver.WebserverAPI.service(WebserverAPI.java:436) | Tenant(, public, public) | API called: /recipe/userid/map. Method: POST. Version: 4.0
sattvikc
11/09/2023, 10:05 AMfdundjer
11/09/2023, 10:06 AMsattvikc
11/09/2023, 10:06 AMrp_st
11/11/2023, 7:00 AMfdundjer
11/13/2023, 1:18 PMrp_st
11/13/2023, 1:44 PMSuperTokens is an open source authentication solution offering features like: Different types of login: Email / password, Passwordless (OTP or Magic link based).
Powered by