August 2, 2019 Comments(0) Uncategorized

    nodejs jwt 예제

    secretOrPublicKey는 HMAC 알고리즘에 대한 비밀 또는 RSA 및 ECDSA에 대한 PEM 인코딩 된 공개 키를 포함하는 문자열 또는 버퍼입니다. jwt.verify가 비동기라고 하는 경우 secretOrPublicKey는 비밀 또는 공개 키를 가져오는 함수일 수 있습니다. 자세한 예JSON 웹 토큰은 인증에 적합하고 사용하기 매우 쉽습니다. 튜토리얼은 우리가 nodejs 및 express를 사용하여 인증jwt를 사용하는 방법을 보여줍니다. Jwt는 모든 유형의 클레임을 포함하는 다양한 목적으로도 사용할 수 있습니다. 자습서에 사용된 jwt는 대칭 알고리즘을 사용하여 서명되지만 비대칭 알고리즘도 쉽게 사용할 수 있습니다. 비대칭 알고리즘에서 개인 키는 토큰에 서명하는 데 사용되며 공개 키는 토큰을 확인하는 데 사용됩니다. 토큰은 해시 알고리즘 예제 sha256을 사용하여 암호화된 본문 + 머리로 구성됩니다. 알고리즘은 응용 프로그램의 요구에 따라 대칭 또는 비대칭일 수 있습니다. 아래 예제에서는 jwt에 대한 서명을 만드는 방법을 보여 주며 있습니다. 함수 체인에서 VerifyToken을 추가한 방법을 확인하십시오. 이제 미들웨어의 모든 권한 부여를 처리합니다.

    이렇게 하면 콜백의 모든 공간을 확보하여 필요한 논리만 처리할 수 있습니다. 이것은 DRY 코드를 작성하는 방법의 멋진 예입니다. 이제 사용자에게 권한을 부여해야 할 때마다 이 미들웨어 기능을 체인에 추가할 수 있습니다. 우체부에서 다시 테스트, 그것은 여전히 해야 처럼 작동 하는지 확인 하려면. 이것은 실제 생활에서 어떻게 생겼습니까? 사용자가 자신의 계정에 로그인하려고 한다고 가정해 보겠습니다. 전자 메일 및 암호와 같은 필수 자격 증명을 사용하여 요청을 서버에 보냅니다. 서버는 자격 증명이 유효한지 확인합니다. 이 경우 서버는 원하는 페이로드와 비밀 키를 사용하여 토큰을 만듭니다. 암호화로 인해 발생하는 이 문자열을 토큰이라고 합니다. 그런 다음 서버가 클라이언트로 다시 보냅니다.

    클라이언트는 차례로 사용자가 보낼 다른 모든 요청에 사용할 토큰을 저장합니다. 요청 헤더에 토큰을 추가하는 방법은 사용자가 리소스에 액세스할 수 있도록 권한을 부여합니다. 이것은 JWT의 작동 방식에 대한 실용적인 예입니다. 그런 다음 개체가 문자열로 변환되고 Base64Url로 인코딩됩니다. 다음 코드는 nodejs의 버퍼 모듈을 사용하여 인코딩을 변경하는 방법을 보여 주며 요청이 엔드포인트에 도달하면 라우터는 요청을 다음 미들웨어 함수에 줄바도록 전달할 수 있는 옵션이 있습니다. 다음 단어에 중점을 두십시오! 왜냐하면 함수의 이름이 정확히 무엇이기 때문입니다! 예제를 살펴보겠습니다.