모바일 응용 프로그램을 개발 중이며 기간이 제한적이라는 것을 알고 있습니다. 나는 나에게 새로 고침 기능이있는 심포니 서버를 사용하고 토큰 :만료 된 JWT 토큰 - 토큰을 새로 고치는 방법
/**
* @Route("/api/refresh", name="api_refresh")
*/
public function refreshTokenAction(Request $request)
{
if(!$request->headers->has('Authorization')) {
return;
}
$extractor = new AuthorizationHeaderTokenExtractor(
'Bearer',
'Authorization'
);
$token = $extractor->extract($request);
$encoder = $this->get('lexik_jwt_authentication.encoder');
$data = $encoder->decode($token);
if(!$data){
return;
}
$username = $data['mail'];
$user = $this->getDoctrine()->getRepository('AppBundle:Benevole')
->findOneBy(['mail' => $username]);
$token = $this->get('lexik_jwt_authentication.encoder')
->encode(['mail' => $user->getMail()]);
// Return genereted tocken
return new JsonResponse(['token' => $token]);
}
내가 이런 식으로 내 서버를 호출하는 AngularJS와의 응용 프로그램으로이 서버를 사용
var refreshToken = function(idPatient){
var token = window.localStorage.getItem('token'); // current valid token
return $http({
method : 'GET',
url : url + '/refresh',
headers : {Authorization : 'Bearer ' + token},
}).then(function(result) {
console.log(result.data);
return result.data;
});
};
내 함수 새로 고침 토큰을 테스트 할 때 버튼을 클릭하면 작동하고 토큰이 새로 고쳐집니다.
내 토큰을 새로 고칠 수있는 방법을 알고 싶습니다. 사용자가 매번 연결을 끊을 필요가 없도록하기 위해서입니다. ^^ 매번 토큰을 확인해야합니까? 응용 프로그램이 매번 이것을 찾을 수있는 몇 가지 조건을 넣어야합니까?
refreshCount 대신, 새로 고침 횟수를 제한하는 맞춤 속성 인 절대 만료 시간을 도입 할 수도 있습니다. – zerkms
그것은 또 다른 유효한 접근법입니다. –
그래, 그들은 실제로 동일합니다 :-) 나는 또한 사람들이 짧은 생존 JWT를 발행하는 데 사용되는 별도의 긴 생체 재생 토큰을 발행하는 것을 보았습니다. 어떤 경우에는 더 편리 할 수 있습니다. – zerkms