我正在尝试在嵌套 js 中使用 graphql 实现登录系统。
我有登录 EP - 工作正常 - 返回不记名令牌。
但我必须query
得到当前用户:
import { CurrentUser } from '../auth/user.decorator'
.
.
.
@Query()
@UseGuards(JwtAuthGuard)
public async me(@CurrentUser() user: any) {
console.log(user)
return { email: 'foo' }
}
使用自定义装饰器 ( user.decorator.ts
):
import { createParamDecorator, ExecutionContext } from '@nestjs/common';
import { GqlExecutionContext } from '@nestjs/graphql';
export const CurrentUser = createParamDecorator(
(data: unknown, context: ExecutionContext) => {
const ctx = GqlExecutionContext.create(context);
return ctx.getContext().req.user;
},
);
当我运行me
时,我收到一个错误"host.getArgByIndex is not a function",
- 它通过...抛出 insindeCurrentUser
装饰器有ctx.getContext()
什么问题?
我的导入是否正确?
它直接来自nestjs doc: https ://docs.nestjs.com/techniques/authentication