2011-11-04 3 views
0

ASP.NET MVC 앱에서 제 3 자 API를 호출하고 있습니다. 이 API는 "갱신"API를 호출하여 얻는 서비스/API 토큰을 사용합니다. 5 일 후에 만료됩니다.ASP.NET MVC 앱에서 API 토큰 갱신

서비스 API 중 하나를 호출하고 만료 된 토큰의 경우 "api token expired"오류가 발생하고 renew 함수를 호출 할 수 있습니다.

"api token expired"오류를 항상 확인하고 로직을 재 시도해야하므로 코드가 복잡해지기 때문에이 작업을 수행하고 싶지 않습니다. 차라리 단순히 갱신 기능이 "비교적 자주 있지만 모든 요청에 ​​대해"호출되지 않도록 할 것입니다.

나는 그것을 피할 수 있다면 타이머 또는 chron 솔루션을 사용하고 싶지 않습니다.

나는 IIS7 +가 자동으로 기본적으로 응용 프로그램 인스턴스를 정기적으로 재활용한다는 것을 알고 있다고 생각했습니다. 이 기본값이 5 일 미만이면 Application_Start를 사용할 수 있습니다.

+0

을 차라리 것 규칙이나 정책에 따라 관리자가 변경할 수 있기 때문에 IIS 설정에 의존하지 않습니다. 토큰을 데이터베이스에 저장하고 5 일마다 토큰을 갱신하는 Windows 서비스가있는 이유는 무엇입니까? 그것은 안전 할 것이고 시간의 100 % 일할 것입니다. – Suhas

+0

@Suhas - 예, 서버 관리자가 설정을 변경할 수는 있지만 시간이 지나면 응용 프로그램을 5 일 동안 재활용 할 수없는 경우를 상상할 수는 없습니다. 그것도 가능합니까? .. 나는 Application_Start가 상대적으로 안전하고이 로직을위한 적절한 장소라고 생각합니다. – niaher

답변

1

당신은 Application_Start를 사용하고 당신이 아마 마지막 토큰이 데이터베이스 나 파일을 검색 할 때의 DateTime를 저장하여, 토큰을 갱신 마지막 시간 이후 적어도 x 시간이되었습니다 것을 확인할 수 있습니다.

앱을 자동으로 시작하지 않아야합니다.

(내 조언이 사용하는 가정되는 방법으로 API를 사용하는 것이다. 당신은 당신이 예를 들어, 너무 자주 요청하는 경우 API 제공 업체에 문제로 실행할 수)