小编Leo*_*uez的帖子

何时使用RS256进行JWT?

所以,现在我正在构建一个供第三方使用的API,我正在阅读有关RS256和HS256的内容.我所理解的是,在第一个中你使用公钥验证和私钥进行签名,而另一个只使用一个密钥..所以如果你使用RS256,因为你想保留你的安全密钥并希望客户端验证令牌,但我不明白为什么要在客户端验证令牌?因为您向服务器发送了一个发布请求,然后它会向您发回一个令牌,每当您想要发出授权请求时,您只需使用该令牌,服务器就会对其进行验证,如果可以,则让您继续.那么,为什么要在客户端验证令牌?我认为这是后端的责任.

我想也许我错了什么,希望你能帮忙解决这个问题.谢谢.

编辑:

所以,我的问题是,我知道RS256和HS256之间的区别,但我不明白它是如何使用它的流程.现在我正在开发第三方api,我只需要在客户端请求它时返回令牌,然后在需要它的请求中,只需从服务器验证它是否是有效令牌.根据我的理解,当您想要从客户端验证令牌时使用RS256,如果这是正确的,有人可以举例说明您何时或为什么要在客户端验证令牌?

cryptography rsa digital-signature hmac jwt

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

使用类验证器和nestjs验证嵌套对象

我正在尝试使用class-validator和NestJS验证嵌套对象。我已经尝试通过使用class-transform 的装饰器来跟踪此线程@Type,但没有任何运气。这是我所拥有的:

DTO:

class PositionDto {
  @IsNumber()
  cost: number;

  @IsNumber()
  quantity: number;
}

export class FreeAgentsCreateEventDto {

  @IsNumber()
  eventId: number;

  @IsEnum(FinderGamesSkillLevel)
  skillLevel: FinderGamesSkillLevel;

  @ValidateNested({ each: true })
  @Type(() => PositionDto)
  positions: PositionDto[];

}
Run Code Online (Sandbox Code Playgroud)

我也在使用内置的nestjs验证管道,这是我的引导程序:

async function bootstrap() {
  const app = await NestFactory.create(ServerModule);
  app.useGlobalPipes(new ValidationPipe());
  await app.listen(config.PORT);
}
bootstrap();
Run Code Online (Sandbox Code Playgroud)

对于其他属性,它工作正常,对象数组是唯一不起作用的数组。

javascript node.js typescript class-validator nestjs

3
推荐指数
2
解决办法
6047
查看次数

在 NestJS 中测试 Passport

我正在尝试对具有来自 Nestjs 护照模块的 AuthGuard 的路由进行 e2e 测试,但我真的不知道如何处理它。当我运行测试时它说:

[ExceptionHandler] 未知的身份验证策略“承载者”

我还没有嘲笑它,所以我想这是因为这个,但我不知道该怎么做。

这是我到目前为止所拥有的:

播放器.e2e-规格.ts

import { Test } from '@nestjs/testing';
import { INestApplication } from '@nestjs/common';
import * as request from 'supertest';
import { PlayerModule } from '../src/modules/player.module';
import { PlayerService } from '../src/services/player.service';
import { Repository } from 'typeorm';

describe('/player', () => {
  let app: INestApplication;
  const playerService = { updatePasswordById: (id, password) => undefined };

  beforeAll(async () => {
    const module = await Test.createTestingModule({
      imports: [PlayerModule],
    })
      .overrideProvider(PlayerService)
      .useValue(playerService)
      .overrideProvider('PlayerRepository') …
Run Code Online (Sandbox Code Playgroud)

nestjs

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

UIPresentationController传递触摸事件

我正在尝试做一个自定义通知视图,该通知视图可以从某个高度滑动到某个高度,但我使用的是UIPresentationController,但问题是在显示第二个VC时未检测到呈现VC的ViewController上的触摸事件。有没有办法做到这一点?

这是发生的事情的直观示例

cocoa-touch ios swift

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