2014-09-25 4 views

답변

21

말씀 드린대로 RFC7519 (https://tools.ietf.org/html/rfc7519) 또는 JWS 또는 JWE와 관련된 기타 RFC에 정의 된 최대 길이는 없습니다.

JSON 직렬 형식 또는 JSON 병합 직렬 형식을 사용하는 경우 제한이 없으며 제한을 정의 할 이유가 없습니다.

JSON Compact Serialized 형식 (가장 일반적인 형식)을 사용하는 경우 주로 웹 컨텍스트에서 사용되므로 가능한 한 짧아야한다는 것을 명심해야합니다. 4kb JWT는 피하는 것이 좋습니다.

유용한 소유권 주장 및 헤더 정보 만 저장하도록주의하십시오.

34

나는 또한 이것을 찾으려고 노력해 왔습니다.

나는 다음과 같이 말하고 싶습니다. - 이하 7kb입니다.

JWT는 사양 (http://www.rfc-editor.org/rfc/rfc7519.txt)에 상한선을 정의하지 않지만 일부 작동 제한이 있습니다. JWT가 HTTP 헤더에 포함되어 있으므로 대부분의 현재 서버에서 8KB의 상한선 (SO: Maximum on http header values)이 있습니다.

여기에는 모두 요청 헤더 < 8kb, 7kb는 다른 헤더에 적당한 공간을 제공합니다. 그 한계에 대한 가장 큰 위험은 쿠키 (헤더에서 보내지고 커질 수 있음)입니다.

암호화되어 있고 base64로되어 있기 때문에 원본 json 문자열의 33 % 이상이 낭비되므로 최종 암호화 토큰의 길이를 확인하십시오.

마지막 요점 - Heroku가 8K로 제한됩니다 헤더를 사용하는 경우 프록시 및 기타 네트워크 장비는 ...

+2

2~3킬로바이트 범위 내에서 "큰"토큰을 피하기 위해 어떤 실제적인 이유가 있습니까? –

+0

@SamuelElrod 아마도 응용 프로그램 요구 사항에 따라 다릅니다.JWT와 관련하여 요청할 때마다 2 ~ 3kb의 금액으로 수하물을 적재하여 매번 운반해야합니다. 이것이 사용자가인지 한 성능에 영향을 미치는 경우이를 제한 할 수 있습니다. – Jack

+0

토큰이 부풀어 오지 않도록하십시오. 2-3k가 이미 너무 커지고 있다고 말하고 싶습니다. 거기에 무엇이 있습니까? 현재 토큰은 320 바이트입니다. – user2800708

0

길을 따라 abitrary 제한을 적용 할 수 있습니다. jwt2에서 사용하는 데이터의 양에 따라 도달 할 수 있습니다. 요청이 때 대형, 노드 인스턴스를 터치하지 않을 Heroku가 라우터

들어오는 요청을 처리

이 라우터는 8킬로바이트가 수신 버퍼를 설정하고 HTTP를 읽기 시작한다 ..하여 API 층 전에 떨어질 요청 라인과 요청 헤더. 이들 각각의 길이는 최대 8KB 일 수 있지만 합쳐서 합계가 8KB가 넘는 일 수 있습니다. 요청 행 또는 헤더 행이 포함 된 요청이 이 아닌 경우 라우터에서 삭제됩니다.

참조 : Heroku Limits

관련 문제