1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- /**
- * 登录页面控制器
- *
- * @author CaiAoLin
- * @date 2017/6/1
- * @version
- */
- import BaseController from "../../common/base/base_controller";
- import ManagerModel from "../models/manager_model";
- import crypto from "crypto";
- class LoginController extends BaseController {
- /**
- * 登录页面
- *
- * @param {object} request
- * @param {object} response
- * @return {void}
- */
- index(request, response) {
- let renderData = {
- layout: false,
- };
- 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.findDataByCondition({username: username});
- // 没有找到对应数据
- if (managerData === null || managerData._id === undefined) {
- throw {code: 44001, err: '用户名或密码错误'};
- }
- // 加密密码
- let encryptPassword = managerModel.encryptPassword(managerData.token, password);
- if (encryptPassword !== managerData.password) {
- throw {code: 44001, err: '用户名或密码错误'};
- }
- // 成功后写入session
- let currentTime = new Date().getTime();
- let sessionToken = crypto.createHmac('sha1', currentTime + '').update(managerData.username)
- .digest().toString('base64');
- let managerSession = {
- username: managerData.username,
- loginTime: currentTime,
- sessionToken: sessionToken,
- };
- request.session.managerData = managerSession;
- } 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');
- }
- }
- export default LoginController;
|