I am trying to integrate Realm Authentication with my node js REST API. I have created an API CreateAnonymousUser like this
const credentials = Realm.Credentials.anonymous();
const user = await app.logIn(credentials);
userId = user.id;
var userObj = {
id: user.id,
identities: user.identities,
state: user.state,
refreshToken: user.refreshToken,
accessToken: user.accessToken,
}
return userObj
I need one more API to convert Anonymous User To Normal User where I will pass only the userId, email, password.
This is my current code but it is giving me an invalid token error. Please help me to find a solution
if (request.body.hasOwnProperty(‘email’) && request.body.hasOwnProperty(‘password’) && request.body.hasOwnProperty(‘userId’)) { //Convert anonymous user to normal user
try {
var anonymousUser = await app.currentUser;// instead of this I have tried below line too
// const anonymousUser =await app.allUsers[request.body.userId];
var anonymousObj = {
id: anonymousUser.id,
email: anonymousUser.profile.email,
identities: anonymousUser.identities,
state: anonymousUser.state,
refreshToken: anonymousUser.refreshToken
}
console.log("Current Anonymoususer" + anonymousObj);
await app.emailPasswordAuth.registerUser(
{
email: request.body.email,
password:request.body.password
}
);
const emailPasswordUserCredentials = Realm.Credentials.emailPassword(
request.body.email,
request.body.password
);
const officialUser = await anonymousUser.linkCredentials(
emailPasswordUserCredentials
);
var officialUserObj = {
id: officialUser.id,
email: officialUser.profile.email,
identities: officialUser.identities,
state: officialUser.state,
refreshToken: officialUser.refreshToken
}
console.log("Successfully logged in!", officialUser.id);
finalObj = {
anonymousUser: anonymousObj,
officialUser: officialUserObj
}
return finalObj;
} catch (err) {
console.log(err.message)
res.send(err.message);
}
}
I got “invalid session: access token expired”