2017-01-16 1 views
1

노드 js에서 jwt를 사용하여 토큰을 만들었습니다. 하지만 클라이언트 측에 저장하고 서버로 다시 보내는 방법에 대해 혼란스러워합니다. 모든 요청의 헤더에있는 토큰을 서버에 보내고 싶습니다.nodejs에서 클라이언트 측 토큰을 설정하는 방법은 무엇입니까?

클라이언트 측 로컬 저장소에 토큰을 추가하는 방법은 무엇입니까? 나는 또한 그것에 적절한 방법을 찾지 못했습니다. 응답 헤더에 토큰을 보내고 클라이언트 측의 로컬 저장소에 저장해야합니까 ?? 또는 클라이언트 로컬 storage.Below에 저장할 수있는 방법은 내가 토큰을 생성하고 헤더에 보낼 코드입니다.

var token = jwt.encode({ 
      iss: row[0].user_id, 
      exp: expires 
     }, 'jwtTokenSecret'); 
res.header('token', token); 

고마워요!

+1

클라이언트 js의 서버 API에 문의해야합니다. AngularJS와 같은 일부 프레임 워크를 사용할 수 있습니다. 각도를 사용하면 온라인에서 많은 모듈을 찾을 수 있습니다. –

답변

1

로그인 후에 토큰을 반환해야합니다. 클라이언트 측에 저장하려면 옵션이 많지 않습니다. 쿠키, 로컬/세션 저장소 또는 웹 SQL 데이터베이스를 사용합니다.

개인적으로 sessionStorage를 사용하는 것이 좋습니다 (변동성 때문에). 서버 측 토큰에 유효성 검사 기간을 추가 할 것입니다. (사용자가 일정 기간 동안 어떤 작업도 수행하지 않으면 토큰을 삭제할 수 있습니다. 사용자가 연결이 끊어 질 수 있음) 클라이언트 측에 저장된 경우 누구나 토큰을 볼 수 있다는 것을 명심하십시오.

또한 API 프록시 및 https를 고려하여 API를 사용하는 경우

+2

연결이 SSL 인 경우에만 쿠키를 사용하고 http를 http로 사용하는 경우 기억하십시오. –

+1

로컬 저장소에서 사용하는 방법 !! 나는 코드에서 의미한다. 어떻게 토큰을 통과해야합니까? 응답 변수 또는 응답 헤더 같은? 그럼 어떻게 클라이언트에서 그것을 저장할 수 있습니까? 코드 샘플이 있으시면 – VisheshRaju

+0

코드 샘플이 없지만 서버와 어떻게 통신하고 계십니까? Ajax를 사용하여 API와 통신하고 있습니까? Ajax를 사용하는 경우 응답 콜백의 모든 것을 처리하고 sessionStorage 변수를 설정하면 "sessionStorage.setItem ('key', 'value');" [https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage](https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage)) –

관련 문제