mirror of
https://github.com/cool-team-official/cool-admin-midway.git
synced 2026-01-25 16:48:13 +00:00
107 lines
3.0 KiB
TypeScript
107 lines
3.0 KiB
TypeScript
import {
|
|
CoolController,
|
|
BaseController,
|
|
CoolUrlTag,
|
|
TagTypes,
|
|
CoolTag,
|
|
} from '@cool-midway/core';
|
|
import { Body, Get, Inject, Post, Query } from '@midwayjs/core';
|
|
import { UserLoginService } from '../../service/login';
|
|
import { BaseSysLoginService } from '../../../base/service/sys/login';
|
|
|
|
/**
|
|
* 登录
|
|
*/
|
|
@CoolUrlTag()
|
|
@CoolController()
|
|
export class AppUserLoginController extends BaseController {
|
|
@Inject()
|
|
userLoginService: UserLoginService;
|
|
|
|
@Inject()
|
|
baseSysLoginService: BaseSysLoginService;
|
|
|
|
@CoolTag(TagTypes.IGNORE_TOKEN)
|
|
@Post('/mini', { summary: '小程序登录' })
|
|
async mini(@Body() body) {
|
|
const { code, encryptedData, iv } = body;
|
|
return this.ok(await this.userLoginService.mini(code, encryptedData, iv));
|
|
}
|
|
|
|
@CoolTag(TagTypes.IGNORE_TOKEN)
|
|
@Post('/mp', { summary: '公众号登录' })
|
|
async mp(@Body('code') code: string) {
|
|
return this.ok(await this.userLoginService.mp(code));
|
|
}
|
|
|
|
@CoolTag(TagTypes.IGNORE_TOKEN)
|
|
@Post('/wxApp', { summary: '微信APP授权登录' })
|
|
async app(@Body('code') code: string) {
|
|
return this.ok(await this.userLoginService.wxApp(code));
|
|
}
|
|
|
|
@CoolTag(TagTypes.IGNORE_TOKEN)
|
|
@Post('/phone', { summary: '手机号登录' })
|
|
async phone(@Body('phone') phone: string, @Body('smsCode') smsCode: string) {
|
|
return this.ok(await this.userLoginService.phoneVerifyCode(phone, smsCode));
|
|
}
|
|
|
|
@CoolTag(TagTypes.IGNORE_TOKEN)
|
|
@Post('/uniPhone', { summary: '一键手机号登录' })
|
|
async uniPhone(
|
|
@Body('access_token') access_token: string,
|
|
@Body('openid') openid: string,
|
|
@Body('appId') appId: string
|
|
) {
|
|
return this.ok(
|
|
await this.userLoginService.uniPhone(access_token, openid, appId)
|
|
);
|
|
}
|
|
|
|
@CoolTag(TagTypes.IGNORE_TOKEN)
|
|
@Post('/miniPhone', { summary: '绑定小程序手机号' })
|
|
async miniPhone(@Body() body) {
|
|
const { code, encryptedData, iv } = body;
|
|
return this.ok(
|
|
await this.userLoginService.miniPhone(code, encryptedData, iv)
|
|
);
|
|
}
|
|
|
|
@CoolTag(TagTypes.IGNORE_TOKEN)
|
|
@Get('/captcha', { summary: '图片验证码' })
|
|
async captcha(
|
|
@Query('width') width: number,
|
|
@Query('height') height: number,
|
|
@Query('color') color: string
|
|
) {
|
|
return this.ok(
|
|
await this.baseSysLoginService.captcha(width, height, color)
|
|
);
|
|
}
|
|
|
|
@CoolTag(TagTypes.IGNORE_TOKEN)
|
|
@Post('/smsCode', { summary: '验证码' })
|
|
async smsCode(
|
|
@Body('phone') phone: string,
|
|
@Body('captchaId') captchaId: string,
|
|
@Body('code') code: string
|
|
) {
|
|
return this.ok(await this.userLoginService.smsCode(phone, captchaId, code));
|
|
}
|
|
|
|
@CoolTag(TagTypes.IGNORE_TOKEN)
|
|
@Post('/refreshToken', { summary: '刷新token' })
|
|
public async refreshToken(@Body('refreshToken') refreshToken) {
|
|
return this.ok(await this.userLoginService.refreshToken(refreshToken));
|
|
}
|
|
|
|
@CoolTag(TagTypes.IGNORE_TOKEN)
|
|
@Post('/password', { summary: '密码登录' })
|
|
async password(
|
|
@Body('phone') phone: string,
|
|
@Body('password') password: string
|
|
) {
|
|
return this.ok(await this.userLoginService.password(phone, password));
|
|
}
|
|
}
|