2023-01-29 15:26:58 +08:00
|
|
|
import {
|
|
|
|
|
Body,
|
|
|
|
|
Controller,
|
|
|
|
|
Inject,
|
|
|
|
|
Post,
|
|
|
|
|
Provide,
|
|
|
|
|
ALL,
|
2024-07-15 00:30:33 +08:00
|
|
|
} from '@midwayjs/core';
|
|
|
|
|
import { LoginService } from '../service/login-service.js';
|
|
|
|
|
import { BaseController } from '../../../basic/base-controller.js';
|
|
|
|
|
import { Constants } from '../../../basic/constants.js';
|
2023-01-29 15:26:58 +08:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*/
|
|
|
|
|
@Provide()
|
|
|
|
|
@Controller('/api/')
|
|
|
|
|
export class LoginController extends BaseController {
|
|
|
|
|
@Inject()
|
|
|
|
|
loginService: LoginService;
|
2023-06-27 09:29:43 +08:00
|
|
|
@Post('/login', { summary: Constants.per.guest })
|
2023-01-29 15:26:58 +08:00
|
|
|
public async login(
|
|
|
|
|
@Body(ALL)
|
|
|
|
|
user
|
|
|
|
|
) {
|
|
|
|
|
const token = await this.loginService.login(user);
|
2023-06-27 22:45:27 +08:00
|
|
|
|
|
|
|
|
this.ctx.cookies.set('token', token.token, {
|
|
|
|
|
maxAge: 1000 * token.expire,
|
|
|
|
|
});
|
|
|
|
|
|
2023-01-29 15:26:58 +08:00
|
|
|
return this.ok(token);
|
|
|
|
|
}
|
|
|
|
|
|
2023-06-27 09:29:43 +08:00
|
|
|
@Post('/logout', { summary: Constants.per.authOnly })
|
2023-01-29 15:26:58 +08:00
|
|
|
public logout() {}
|
|
|
|
|
}
|