123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- /**
- * 登录页面控制器
- *
- * @author CaiAoLin
- * @date 2017/6/1
- * @version
- */
- import BaseController from "../../common/base/base_controller";
- import ManagerModel from "../models/manager_model";
- import crypto from "crypto";
- import Test1Model from "../../../test/models/test1_model";
- import Test2Model from "../../../test/models/test2_model";
- import Test3Model from "../../../test/models/test3_model";
- class LoginController extends BaseController {
- /**
- * 登录页面
- *
- * @param {object} request
- * @param {object} response
- * @return {void|Mixed}
- */
- index(request, response) {
- let renderData = {
- layout: false,
- };
- let managerSessionData = request.session.managerData;
- if (managerSessionData !== undefined) {
- return response.redirect("/dashboard");
- }
- response.render('users/views/login/index', renderData);
- }
- /**
- * 登录操作
- *
- * @param {object} request
- * @param {object} response
- * @return {string}
- */
- async login(request, response) {
- let username = request.body.username;
- let password = request.body.password;
- let managerModel = new ManagerModel();
- let responseData = {
- error: 0,
- msg: ''
- };
- try {
- let managerData = await managerModel.validLogin(username, password);
- // 成功后写入session
- let currentTime = new Date().getTime();
- let sessionToken = crypto.createHmac('sha1', currentTime + '').update(managerData.username)
- .digest().toString('base64');
- let managerSession = {
- username: managerData.username,
- real_name:managerData.real_name,
- loginTime: currentTime,
- sessionToken: sessionToken,
- userID: managerData.id,
- permission: managerData.permission === undefined ? '' : managerData.permission,
- superAdmin: managerData.super_admin
- };
- request.session.managerData = managerSession;
- // 更新登录信息
- let ip = request.connection.remoteAddress;
- ip = ip.split(':');
- ip = ip[3] === undefined ? '' : ip[3];
- let updateData = {
- login_ip: ip,
- last_login: new Date().getTime()
- };
- let updateResult = managerModel.updateById(managerData._id, updateData);
- if (!updateResult) {
- throw {code: 44003, err: '更新登录信息失败!'};
- }
- } catch (error) {
- responseData.error = error.code;
- responseData.msg = error.err;
- }
- response.json(responseData);
- }
- /**
- * 退出操作
- *
- * @param {object} request
- * @param {object} response
- * @return {void}
- */
- logout(request, response) {
- // 清空session
- request.session.destroy();
- response.redirect('/login');
- }
- /**
- * 压测接口
- *
- * @param {object} request
- * @param {object} response
- * @return {void}
- */
- async test(request, response) {
- let responseData = {
- error: 0,
- msg: ''
- };
- try {
- // 第一个库的操作
- let test1Model = new Test1Model();
- let test1Result = await test1Model.test();
- if (!test1Result) {
- throw 'test1出错';
- }
- // 第二个库操作
- let test2Model = new Test2Model();
- let test2Result = await test2Model.test();
- if (!test2Result) {
- throw 'test2出错';
- }
- // 第三个库操作
- let test3Model = new Test3Model();
- let test3Result = await test3Model.test();
- if (!test3Result) {
- throw 'test3出错';
- }
- } catch (error) {
- console.log(error);
- responseData.error = 1;
- responseData.msg = error;
- }
- response.json(responseData);
- }
- }
- export default LoginController;
|