apps/meteor/app/token-login/server/login_token_server.js
import { Users } from '@rocket.chat/models';
import { Accounts } from 'meteor/accounts-base';
import { check } from 'meteor/check';
Accounts.registerLoginHandler('login-token', async (result) => {
if (!result.loginToken) {
return;
}
check(result.loginToken, String);
const user = await Users.findOne({
'services.loginToken.token': result.loginToken,
});
if (user) {
await Users.updateOne({ _id: user._id }, { $unset: { 'services.loginToken': 1 } });
return {
userId: user._id,
};
}
});