增加用于小程序登陆的接口

This commit is contained in:
zhl 2021-05-12 17:31:59 +08:00
parent ce419f52ce
commit 7655e632c5
2 changed files with 55 additions and 0 deletions

View File

@ -0,0 +1,17 @@
import BaseController from '../../common/base.controller'
import { role, router } from '../../decorators/router'
import { GameUser } from '../../models/GameUser'
class GameUserController extends BaseController {
@role('anon')
@router('post /weapp/login')
async gameUserLogin(req, res) {
const {accountId} = req.params
let user = (await GameUser.findOrCreate({accountId})).doc
user.updateFromReq(req.params)
await user.save()
const token = await res.jwtSign({ id: user.id, accountId: accountId });
return {token}
}
}

38
src/models/GameUser.ts Normal file
View File

@ -0,0 +1,38 @@
import { dbconn } from '../decorators/dbconn'
import {
getModelForClass,
index,
modelOptions,
prop
} from '@typegoose/typegoose'
import { BaseModule } from './Base'
@dbconn()
@index({ accoundId: 1}, { unique: true })
@modelOptions({ schemaOptions: { collection: 'game_user', timestamps: true } })
class GameUserClass extends BaseModule {
@prop()
public accountId: string
@prop()
public nickname: string
@prop()
public avatar: string
@prop({default: 0})
public sex?: string;
@prop({default: 'CN'})
public country?: string;
@prop()
public province?: string;
@prop()
public city?: string;
@prop({default: false})
public locked: boolean;
@prop()
public lockedTime?: Date;
}
export const GameUser = getModelForClass(GameUserClass, {existingConnection: GameUserClass.db});