1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- 'use strict';
- /**
- * 登录页面控制器
- *
- * @author CaiAoLin
- * @date 2017/11/15
- * @version
- */
- module.exports = app => {
- class LoginController extends app.BaseController {
- /**
- * 登录页面
- *
- * @param {Object} ctx - egg全局页面
- * @return {void}
- */
- async index(ctx) {
- const errorMessage = ctx.session.loginError;
- // 显示完删除
- ctx.session.loginError = null;
- const renderData = {
- errorMessage,
- };
- await ctx.render('login/login.ejs', renderData);
- }
- /**
- * 登录操作
- *
- * @param {Object} ctx - egg全局变量
- * @return {void}
- */
- async login(ctx) {
- let loginType = ctx.request.body.type;
- try {
- loginType = parseInt(loginType);
- const result = await ctx.service.projectAccount.accountLogin(ctx.request.body, loginType);
- if (!result) {
- throw '登录失败';
- }
- // 判断是否已经有对应用户信息,没有则跳转初始化页面
- const needBoot = await ctx.service.customer.isNeedBoot(ctx.request.body);
- const url = needBoot ? '/boot' : '/dashboard';
- if (ctx.request.header.referer !== '/' && ctx.request.header.referer !== '/login') {
- ctx.redirect(url)
- } else {
- ctx.redirect(ctx.request.header.referer);
- }
- } catch (error) {
- this.log(error);
- ctx.session.loginError = '用户名或密码错误';
- ctx.redirect('/login');
- }
- }
- /**
- * 退出登录
- *
- * @param {Object} ctx - egg全局变量
- * @return {void}
- */
- async logout(ctx) {
- // 删除session并跳转
- ctx.session = null;
- ctx.redirect('/');
- }
- }
- return LoginController;
- };
|