1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import { Body, Config, Controller, Inject, Post, Get } from '@midwayjs/core';
- import { ApiTags } from '@midwayjs/swagger';
- import { LoginDTO, LoginVO, UPwdDTO } from '../../interface/user/login.interface';
- import { LoginService } from '../../service/user/login.service';
- import { JwtService } from '@midwayjs/jwt';
- import { Context } from '@midwayjs/koa';
- const assert = require('assert');
- import get = require('lodash/get');
- @ApiTags(['登录服务'])
- @Controller('/login')
- export class LoginController {
- @Inject()
- loginService: LoginService;
- @Inject()
- jwtService: JwtService;
- @Config('jwt.secret')
- jwtSecret;
- @Config('jwt.expiresIn')
- jwtExpiresIn;
- @Inject()
- ctx: Context;
- /**
- * 账密登录
- * @param data 用户名和密码
- * @param type 用户类型
- */
- @Post('/exam_account')
- async toLogin(@Body() data: LoginDTO) {
- const user = await this.loginService.loginByAccount(data, 'Admin');
- let vo = new LoginVO(user);
- vo = JSON.parse(JSON.stringify(vo));
- const token = await this.jwtService.sign(vo, this.jwtSecret, {
- expiresIn: this.jwtExpiresIn,
- });
- return token;
- }
- /**
- * 修改密码
- * @param data 修改密码所需数据
- * @param type 账户类型
- */
- @Post('/updatePwd/:type')
- async updatePwd(@Body() data: UPwdDTO) {
- await this.loginService.updatePwd(data, 'Admin');
- return 'ok';
- }
- @Get('/analysis')
- async analysisToken() {
- const token = get(this.ctx, 'request.header.token');
- assert(token, '缺少token信息');
- const result = await this.jwtService.decodeSync(token);
- return result;
- }
- }
|