'use strict'; /** * 登录页面控制器 * * @author CaiAoLin * @date 2017/11/15 * @version */ const SSO = require('../lib/sso'); 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 '登录失败'; } ctx.redirect('/login/test'); } catch (error) { console.log(error); ctx.session.loginError = '用户名或密码错误'; ctx.redirect('/login'); } } /** * 退出登录 * * @param {Object} ctx - egg全局变量 * @return {void} */ async logout(ctx) { // 删除session并跳转 ctx.session = null; ctx.redirect('/'); } async test(ctx) { const test = ctx.session.sessionUser; console.log(test); ctx.body = 'hello'; } } return LoginController; };