| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- const router = require('express').Router();
- const {paramFail, ServerError, success, controlError, searchSuccess} = require("../tools/result");
- const c = require("../control/c_user");
- const typeTool = require("../tools/typeTool");
- const {toSqlString} = require("../tools/searchSql");
- const log = require("../logger").logger("r_solution","info");
- router.post('/login', async (req, res) => {
- try{
- let err, userData;
- let {account, passwd, captcha} = req.body;
- if(!account || !passwd || !captcha){
- paramFail(res, "account or password or captcha is required");
- return;
- }
- // 检查验证码
- if (captcha.toLowerCase() !== req.session.captcha) return paramFail(res,`验证码错误` );
- // 转义解码参数
- let safePasswd = toSqlString(passwd);
- account = toSqlString(account);
- passwd = decode.decodePasswd(passwd);
- // 生成登陆记录
- let loginData = {
- loginIp: req.ip.match(/\d+\.\d+\.\d+\.\d+/),
- account: account,
- passwd: safePasswd,
- loginTime: time.getUnixTimeStamp(),
- isLogin: false
- }
- // 加密模块
- // 尝试查找账户
- [err,userData] = await c_user.userLogin(account, passwd);
- if(err){
- log.warn(`[用户登录] 登陆失败 ${err.message}`);
- paramFail(res, `登陆失败 ${err.message}`);
- }else{
- loginData.isLogin = true;
- loginData.userId = userData['userId'];
- // 存储用户状态到session
- req.session[progressField.session_hfy] = userData;
- res.json({
- rcode: codeMap.ok,
- data: userData
- });
- }
- let [Err,isOk] = await c_user.saveLoginData(loginData);
- }catch (e) {
- ServerError(res, null, e.message);
- }
- });
- module.exports = router ;
|