ASP.NET WebAPI에서 OWIN 인증을 사용하는 웹 API가있어서 새로 고침 토큰을 구현해야합니다.새로 고침 토큰 처리
사용자가 로그인하면 API가 클라이언트에 Access_Token
, Expiry_Date
(3 분) 및 Refresh_token
을 전송합니다.
그런 다음 토큰은 클라이언트 localStorage
에 저장됩니다.
access_token
이 만료 된 경우 refresh_token을 사용하면 새로운 access_token
을 사용한다는 것을 알고 있습니다.
이제 내 문제는 언제 할 수 있습니까?
웹 API에서 데이터를 요청할 때마다 클라이언트에 여전히 유효한/만료 기한이 있는지 확인해야합니까? access_token
언제라도 요청할 수 있습니까? access_token이 만료 되었다면 새로운 access_token 권한을 요청해야합니다. 예를 들어
: api/orders
(웹 API)의 데이터에 대한
- 클라이언트 (모바일 하이브리드 응용 프로그램) 요청.
- 클라이언트가 사용하는
access_token
이 localStorage에 저장된Expiry_Date
에 만료되었습니다. - 요청을 "중지"해야합니다.
refresh_token
을 사용하여 새로운access_token
을 얻은 다음api/orders
을 다시 요청하십시오. 기본적으로 세 가지 요청을 동시에 수행 하시겠습니까? 나에게 조금은 효율적이라고 보인다.
또는 다시 로그인 하시겠습니까? 사용자가 로그인해야하는 3 분마다를 의미합니까? 이것은이 목적에 어긋납니다.
어떻게 처리해야할까요?
아래의 샘플 아약스 요청에서 누군가가이 문제를 처리 할 수 있습니까?
$.ajax({
type: 'GET',
url: WEB_API_URL,
data: data,
dataType: 'json',
beforeSend: function(xhr) {
// need to check if the accessToken is expired
xhr.setRequestHeader("Authorization", "Bearer " + accessToken);
},
}).
1 ~ 3 번은 로그인으로 처리됩니다. 클라이언트가 이미 로그인 한 경우는 어떻게됩니까? 1-3 단계를 다시 수행해야합니까? 그리고 토큰이 webapi에 대한 요청 시간에 유효하지 않은 경우 복잡한 것입니다 –
내 포인트는 사용자가 로그인 할 때 토큰이 localStorage에 저장되고 API에 이어지는 요청에서이 토큰을 사용합니다. 사용자가 이미 로그인했을 때 토큰이 만료되면 어떻게해야합니까? 제 경우에는 3 분 안에 토큰 만료가 있습니다. –
그래서 모든 요청에 대해 데이터 저장소에서 토큰을 검색해야합니다. 3 분 후에 더 이상 요청할 수없는 다른 사람. 특정 배경을 모르지만 새 토큰 호출 횟수를 줄이려면 만료 시간을 늘리십시오. –