const userAuthClient = mitter.clients().userAuth()
const userClient = mitter.clients().users()
router.post('/login', async function(req, res, next) {
const { username, password } = req.body;
const userFound = Object.keys(Users).find((userId) => { // [1]
const { username: targetUsername, password: targetPassword } =
Users[userId].credentials;
return username === targetUsername && password === targetPassword;
const createUser = userClient.createUser({ // [2]
screenName: Users[userFound].name
if (!(e.response.status === 409 &&
e.response.data.errorCode === 'duplicate_entity')) { // [3]
createUser.then(() => userAuthClient.getUserToken(userFound)) // [4]
loginSuccessfulResponse(res, userFound, token.userToken.signedToken)
console.error('Error executing request, setting 500', e)
return Promise.resolve();