UNPKG

sails-base

Version:

sails1.0+扩展基础包,包含用户体系权限校验及model的attr,action的inputs入参提示语自定义功能

87 lines (67 loc) 1.93 kB
module.exports = { friendlyName: 'Local', description: '本地账号授权登录.', inputs: { identifier: { type: 'string', description: '登录账号,可用户名可邮箱登录', required: true }, password: { type: 'string', description: '登录密码', required: true } }, exits: { userNotFoundError: { description: 'user not found..', outputDescription: '账号密码错误.', responseType: 'serverError' }, passportNotFoundError: { description: 'passport not found.', outputDescription: '账号密码错误.', responseType: 'serverError' }, passportNotMatchError: { description: 'passport not match.', outputDescription: '账号密码错误.', responseType: 'serverError' } }, violationMessages: { identifier: { required: '用户名不能为空.' }, password: { unique: '密码不能为空.' } }, fn: async function (inputs, exits) { //判断登录账号是否为邮箱 let isEmail = await sails.helpers.isEmail(inputs.identifier); let where = {}; if (isEmail) where.email = inputs.identifier; else where.username = inputs.identifier; let user = await User.findOne(where); if (!user) throw { userNotFoundError: new Error('账号密码错误.') }; let passport = await Passport.findOne({ identifier: inputs.identifier, user: user.id }); if (!passport) throw { passportNotFoundError: new Error('账号密码错误.') }; //密码加密匹配是否一致 let matchPwd = await sails.helpers.comparePwd(inputs.password, passport.password); if (!matchPwd) throw { passportNotMatchError: new Error('账号密码错误.') }; this.req.session.passport = passport; this.req.session.authenticated = true; return exits.success(); } };