小编Dez*_*ley的帖子

使用 graphql 在 Nestjs 中进行授权

我已经开始学习Nestjs、express和graphql。我在尝试授权使用 jwt 令牌进行身份验证的用户访问时遇到问题。我按照Nestjs 网站上的身份验证教程进行操作。我能够获取当前用户,但是当我尝试实现基本角色基础访问控制时,我无法在 canActivate 方法中访问当前用户。我认为这是因为 Roles Guard 在 Graphql Guard 之前执行。

我将在这里发布代码

gql-auth.guard.ts

import { ExecutionContext } from "@nestjs/common";
import { GqlExecutionContext } from "@nestjs/graphql";
import { AuthGuard } from "@nestjs/passport";

export class GqlAuthGuard extends AuthGuard("jwt") {
    getRequest(context: ExecutionContext) {
        const ctx = GqlExecutionContext.create(context);
        console.log("gql simple context: ", context);
        console.log("gqlContext: ", ctx.getContext());
        return ctx.getContext().req;
    }
}
Run Code Online (Sandbox Code Playgroud)

角色.guard.ts

import { CanActivate, ExecutionContext, Injectable } from "@nestjs/common";
import { Reflector } from "@nestjs/core";
import { GqlExecutionContext } …
Run Code Online (Sandbox Code Playgroud)

graphql nestjs nestjs-passport nestjs-jwt

11
推荐指数
1
解决办法
1万
查看次数

在 Visual Studio 中链接其他文件

我正在尝试将 stylecop.json 包含在 Visual Studio 2017 上的 C# 项目中。我已经弄清楚如何通过在任何文本编辑器中修改 .csproj 来实现此目的:

<AdditionalFiles Include="stylecop.json">
    <Link>stylecop.json</Link>
</AdditionalFiles>
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一种方法可以在不进行任何文本编辑的情况下执行此操作。我知道我总是可以像任何其他文件一样添加它,但这会在项目文件夹中创建文件的副本,而不是在外部链接它。

csproj visual-studio

1
推荐指数
1
解决办法
3486
查看次数