2017-12-19 12 views
2
디코딩 할 수
+0

키를 사용하여 JWT를 인코딩하므로 JWT를 디코딩 할 수 있으려면 키가 필요합니다 (서버 측에서이 키를 전달해야합니다. 고객). –

+0

아, 그래, 그래서 난 내 신청서에서 그것을 해독해서는 안되니? 그런 다음 필요한 정보를 laravel API에서 항상 전달해야합니다. jwt를 디코딩하여 반응 애플리케이션의 일부 데이터에 액세스 할 수 있다면 좋을 것입니다. – user1009698

+0

클라이언트에서 디코드하는 것이 가능하지만 얼마나 신뢰할 수 있는지에 달려 있습니다. –

답변

3

Javascript의 JWT 디코딩의 경우 Auth0의 JWT 디코드 라이브러리 (https://github.com/auth0/jwt-decode)를 사용하면 인코딩 된 JWT 토큰을 디코딩 (검증 안 함) 할 수 있습니다.

당신은 설정 쿠키에서 JWT 토큰을 읽고 이런 식으로 디코딩 것 :

var token = 'eyJ0eXAiO.../// jwt token'; 
var decoded = jwt_decode(token); 

당신은 또한 그것을 디코딩하는 간단한 기능을 사용할 수 있습니다 다음과 같을 것이다 :

function parseJwt (token) { 
    var base64Url = token.split('.')[1]; 
    var base64 = base64Url.replace('-', '+').replace('_', '/'); 
    return JSON.parse(window.atob(base64)); 
}; 

React 애플리케이션에서 직접 JWT 토큰을 디코딩 할 때 문제가 없다. 사용자가 수정 된 JWT 토큰이 될 수 없도록 항상 서버 측에서 인코딩 된 토큰을 확인해야한다.

+0

하지만 PHP에서 인코딩하는 데 사용하는 비밀은 바로 필요합니까? 게다가 알고리즘? – user1009698

+0

@ user1009698 비밀은 필요하지 않습니다. 이것은 토큰을 확인하기 위해서만 필요하지만 Base64로 인코딩 된 JSON 객체 인 JWT 토큰에 저장된 데이터에 액세스하기위한 것이 아닙니다 – Marco