2016-12-24 1 views
1

아시다시피 세션 기반 인증 대신 토큰 기반 인증 을 사용하는 데는 몇 가지 이유가 있습니다.JWT의 시간 만료 문제

세션 기반에서는 물론 만료 시간이 있습니다. 따라서 사용자가 잠시 동안 활성화되어 있지 않으면 세션이 만료됩니다. 만료되기 전에 서버에 요청을 보내면 시간이 연장됩니다.

hereJWT 멋진 튜토리얼이 있습니다. 토큰 만료 에 대한 질문이 있습니다. 만료 시간을 100 초로 설정 한 다음 토큰에 서명한다고 가정 해보십시오. 사용자가 활성화되어 있는지 여부는 중요하지 않습니다. 100 초 후에 토큰은 더 이상 유효하지 않습니다. 이것은 사용자를 귀찮게합니다. 시간을 연장 할 방법이 있습니까?

진정한 접근인가, 아니면 실수가있을 수 있습니다. 어떤 생각?

+0

질문에 대답 했습니까? – Maxwelll

답변

1

내가 제대로 질문을 이해한다면,를 생성 할 때 JWT 토큰의 만료를 변경하는 것이 매우 간단하다 ...

은 "EXP는"(만료 시간) 주장은 나에 만료 시간을 식별 그 후 JWT는 처리를 위해 받아 들여서는 안된다. "exp"클레임 처리시 현재 날짜/시간 은 "exp"클레임에 나열된 만료 날짜/시간보다 이전이어야합니다.

자세한 내용은 여기 https://tools.ietf.org/html/rfc7519#section-4.1.4

는 기본적으로 exp 키는 유닉스 타임 스탬프를 소요 할 수 있습니다 - 지금부터> 백초에 타임 스탬프를 설정하고 당신은 당신의 목표를 달성 할 것이다.

토큰을 "새로 고치려면"API에 유효한 JWT를 수신하고 업데이트 된 만료와 함께 동일한 서명 된 JWT를 반환하는 서비스가 필요합니다.

+0

여기 유닉스 타임 스탬프를 생성하는 데 유용한 도구입니다. http://www.onlineconversion.com/unix_time.htm – Maxwelll

+0

고맙습니다.하지만 제 질문을 이해하지 못했을 것 같아요. 내가 더 설명하게 해줘. 세션 기반 인증을 사용한다고 가정 해보십시오. 사용자가 1 개월까지 페이지를 새로 고침하면 결코 로그 아웃되지 않습니다. 새로 고칠 때마다 세션 만료가 연장되기 때문입니다. 하지만 여기에서 'exp'를 100 초로 설정하면 사용자가 활성화되어 있어도 갑자기 로그 아웃됩니다. –

+0

"100 초 후에 100 초로 설정하십시오"라는 말을하는 것이 나에게 의미가 없다. 토큰이 만료되기를 원하는 날짜/시간을 지정하고 유닉스 타임 스탬프로 변환한다. 매우 단순하다. – Maxwelll