Node.js에서 미들웨어 기능을 비동기 적으로 실행할 수 있습니까?

게리

사용자 액세스 토큰 (JWT)의 유효성을 검사하는 미들웨어 기능을 구축했습니다 .JWT가 만료 된 경우 사용자의 새로 고침 토큰에서 새 액세스 토큰을 자동으로 만듭니다 (물론 유효한 경우).

어느 시점에서 충분한 사용자가 있으면 권한 부여가 병목이 될 수 있다고 생각합니다. 이러한 함수가 비동기 적으로 실행되는지 확인하고 싶습니다 (예 : UV 스레드 풀을 통해).

이것이 가능합니까, 아니면 이것에 대해 걱정해야합니까?

추가:

이것은 미들웨어 기능에서 사용하는 암호 해독 루틴입니다. 나는 또한 jsonwebtoken을 사용하고 있습니다.

'use strict';

const cryptoAsync = require('@ronomon/crypto-async');
const crypto = require('crypto');
const util = require('util');

class AES {
    constructor(key, iv, bitSize) {
      // supported stream ciphers:
      // aes-256-ctr (keySize=32, ivSize=16)
      // aes-192-ctr (keySize=24, ivSize=16)
      // aes-128-ctr (keySize=16, ivSize=16)

      if (!bitSize) bitSize = 128;

      if (bitSize !== 256 && bitSize !== 192 && bitSize !== 128) {
        throw new Error('AES requires a bitsize of 256, 192, or 128.');
      }

      if (!key || key.length !== bitSize/8) throw new Error(`A ${bitSize/8}-byte/${bitSize}-bit key is required.`);

      if (!iv || iv.length !== 16) throw new Error('A 16-byte/128-bit initialization vector is required.');

      this.algo = `aes-${bitSize}-ctr`;
      this.key = key;
      this.iv = iv;

      console.log(`Using the ${this.algo} algorithm ...`);
    }
 
    async encrypt(dataAsUtf8) {
        const cipherText = await util.promisify(cryptoAsync.cipher)(this.algo, 1, this.key, this.iv, Buffer.from(dataAsUtf8, 'utf8'));

        return cipherText.toString('hex');
    }

    async decrypt(dataAsHex) {
    if (!Buffer.isEncoding('hex')) throw new Error('Input must be in HEX format.');

        const cipherText = await util.promisify(cryptoAsync.cipher)(this.algo, 0, this.key, this.iv, Buffer.from(dataAsHex, 'hex'));

        return cipherText.toString('utf8');
    }

    static randomBytes = async bytes => {
        const bytesAsBuffer = await util.promisify(crypto.randomBytes)(bytes);

    return bytesAsBuffer;
    }
}

module.exports = AES;
더 선명하게

매우 큰 보고서를 생성하는 것과 같은 심각한 작업을 수행하지 않는 한 상당한 시간 동안 Node에서 메인 스레드를 차단하는 코드를 작성하는 것은 실제로 매우 어렵습니다. JWT 토큰을 통한 인증은 완전히 가볍고 문제가되지 않습니다. 사실상 보장 할 수 있습니다. 그게 계획이라면 해당 유형의 작업을 별도의 스레드로 밀어 넣을 필요가 없습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

이 코드를 Node.js에서 어떻게 동 기적으로 실행할 수 있습니까?

분류에서Dev

미들웨어에서 동적 모델을 사용할 수 있습니까?

분류에서Dev

주기적으로 비동기 작업을 자동으로 수행하기 위해 Node.js에서 별도의 스레드에 해당하는 것을 실행할 수 있습니까?

분류에서Dev

내 서비스의 메서드가 호출되기 전에 일부 코드를 어떻게 비동기 적으로 실행할 수 있습니까?

분류에서Dev

조건부 미들웨어 내에서 Node.js Express 세션을 어떻게 사용할 수 있습니까?

분류에서Dev

AOP 조언 @AfterReturning을 비동기 적으로 실행할 수 있습니까?

분류에서Dev

TypeScript에서 문자열 / 객체의 기능을 어떻게 동적으로 확장 할 수 있습니까?

분류에서Dev

Python에서 파일을 비동기 적으로 삭제할 수 있습니까?

분류에서Dev

UseEndpoints가 수행하기 전에 .NET Core 미들웨어에서 경로가 유효한지 어떻게 확인할 수 있습니까?

분류에서Dev

GPU로 비동기 작업을 실행할 수 있습니까?

분류에서Dev

완료 될 때까지 기다리지 않고 * 및 * 비동기 적으로 실행할 수있는 비동기 메서드를 선언 하시겠습니까?

분류에서Dev

Magento 2 백엔드에서 비동기식으로 여러 Ajax 요청을 실행할 수 있습니까?

분류에서Dev

.NET에서 PHP 기능을 실행할 수 있습니까?

분류에서Dev

이전 MVC3 응용 프로그램에서 OWIN 미들웨어를 실행할 수 있습니까?

분류에서Dev

sammy.js에서 하나를 제외한 모든 경로에서 특정 기능을 어떻게 실행할 수 있습니까?

분류에서Dev

Rocket에서 비동기 fn을 핸들러로 사용할 수 있습니까?

분류에서Dev

C #에서 PowerShell 셸을 실행하고 계속 실행하면서 (동 기적으로) 여러 PowerShell 스크립트를 실행할 수 있습니까?

분류에서Dev

질문 게임을 만들기 위해 discord js에서 비동기 기능을 어떻게 사용할 수 있습니까?

분류에서Dev

ExpressJS에서 특정 경로에 대한 미들웨어를 비활성화 / 제거 할 수 있습니까?

분류에서Dev

C #과의 비동기 성과 같은 Node.js를 어떻게 수행 할 수 있습니까?

분류에서Dev

이미지와 같은 비 HTML 요청에 대해 Firefox 부가 기능을 실행할 수 있습니까?

분류에서Dev

react-native에서 sqlite db 쿼리를 비동기 적으로 실행할 수 없습니다.

분류에서Dev

vuex 스토어에서 비동기 기능을 수행하는 방법이 있습니까?

분류에서Dev

Ubuntu 13.04에서 실행되는 XBMC의 Sportsdevil 추가 기능을 어떻게 수정할 수 있습니까?

분류에서Dev

주기적인 호출을 위해 어떻게 실행 파일을 RAM에로드 할 수 있습니까?

분류에서Dev

node.js에서 모든 것이 비동기 적으로 발생할 수 있도록 child_process.exec를 사용하는 방법은 무엇입니까?

분류에서Dev

bluebird에서 비동기 함수를 순차적으로 실행합니까?

분류에서Dev

Haskell에서이 기능을 어떻게 최적화 할 수 있습니까?

분류에서Dev

Perl에서 기능 부분 적용을 어떻게 할 수 있습니까?

Related 관련 기사

  1. 1

    이 코드를 Node.js에서 어떻게 동 기적으로 실행할 수 있습니까?

  2. 2

    미들웨어에서 동적 모델을 사용할 수 있습니까?

  3. 3

    주기적으로 비동기 작업을 자동으로 수행하기 위해 Node.js에서 별도의 스레드에 해당하는 것을 실행할 수 있습니까?

  4. 4

    내 서비스의 메서드가 호출되기 전에 일부 코드를 어떻게 비동기 적으로 실행할 수 있습니까?

  5. 5

    조건부 미들웨어 내에서 Node.js Express 세션을 어떻게 사용할 수 있습니까?

  6. 6

    AOP 조언 @AfterReturning을 비동기 적으로 실행할 수 있습니까?

  7. 7

    TypeScript에서 문자열 / 객체의 기능을 어떻게 동적으로 확장 할 수 있습니까?

  8. 8

    Python에서 파일을 비동기 적으로 삭제할 수 있습니까?

  9. 9

    UseEndpoints가 수행하기 전에 .NET Core 미들웨어에서 경로가 유효한지 어떻게 확인할 수 있습니까?

  10. 10

    GPU로 비동기 작업을 실행할 수 있습니까?

  11. 11

    완료 될 때까지 기다리지 않고 * 및 * 비동기 적으로 실행할 수있는 비동기 메서드를 선언 하시겠습니까?

  12. 12

    Magento 2 백엔드에서 비동기식으로 여러 Ajax 요청을 실행할 수 있습니까?

  13. 13

    .NET에서 PHP 기능을 실행할 수 있습니까?

  14. 14

    이전 MVC3 응용 프로그램에서 OWIN 미들웨어를 실행할 수 있습니까?

  15. 15

    sammy.js에서 하나를 제외한 모든 경로에서 특정 기능을 어떻게 실행할 수 있습니까?

  16. 16

    Rocket에서 비동기 fn을 핸들러로 사용할 수 있습니까?

  17. 17

    C #에서 PowerShell 셸을 실행하고 계속 실행하면서 (동 기적으로) 여러 PowerShell 스크립트를 실행할 수 있습니까?

  18. 18

    질문 게임을 만들기 위해 discord js에서 비동기 기능을 어떻게 사용할 수 있습니까?

  19. 19

    ExpressJS에서 특정 경로에 대한 미들웨어를 비활성화 / 제거 할 수 있습니까?

  20. 20

    C #과의 비동기 성과 같은 Node.js를 어떻게 수행 할 수 있습니까?

  21. 21

    이미지와 같은 비 HTML 요청에 대해 Firefox 부가 기능을 실행할 수 있습니까?

  22. 22

    react-native에서 sqlite db 쿼리를 비동기 적으로 실행할 수 없습니다.

  23. 23

    vuex 스토어에서 비동기 기능을 수행하는 방법이 있습니까?

  24. 24

    Ubuntu 13.04에서 실행되는 XBMC의 Sportsdevil 추가 기능을 어떻게 수정할 수 있습니까?

  25. 25

    주기적인 호출을 위해 어떻게 실행 파일을 RAM에로드 할 수 있습니까?

  26. 26

    node.js에서 모든 것이 비동기 적으로 발생할 수 있도록 child_process.exec를 사용하는 방법은 무엇입니까?

  27. 27

    bluebird에서 비동기 함수를 순차적으로 실행합니까?

  28. 28

    Haskell에서이 기능을 어떻게 최적화 할 수 있습니까?

  29. 29

    Perl에서 기능 부분 적용을 어떻게 할 수 있습니까?

뜨겁다태그

보관