UNPKG

node-express-mongodb-jwt-rest-api-skeleton

Version:

Node.js express.js MongoDB JWT REST API - This is a basic API REST skeleton written on JavaScript using async/await. Great for building a starter web API for your front-end (Android, iOS, Vue, react, angular, or anything that can consume an API)

43 lines (40 loc) 1.11 kB
const UserAccess = require('../../../models/userAccess') const { setUserInfo } = require('./setUserInfo') const { generateToken } = require('./generateToken') const { getIP, getBrowserInfo, getCountry, buildErrObject } = require('../../../middleware/utils') /** * Saves a new user access and then returns token * @param {Object} req - request object * @param {Object} user - user object */ const saveUserAccessAndReturnToken = (req = {}, user = {}) => { return new Promise((resolve, reject) => { const userAccess = new UserAccess({ email: user.email, ip: getIP(req), browser: getBrowserInfo(req), country: getCountry(req) }) userAccess.save(async (err) => { try { if (err) { return reject(buildErrObject(422, err.message)) } const userInfo = await setUserInfo(user) // Returns data with access token resolve({ token: generateToken(user._id), user: userInfo }) } catch (error) { reject(error) } }) }) } module.exports = { saveUserAccessAndReturnToken }