2016-10-14 9 views
2

그래서 React 앱에 Auth 정보가 들어있는 저장소가 있습니다. auth는 JWT 토큰에서 파생됩니다. 가게는 정식 매장도 토큰을 가지고있는 경우 확인 loggedIn라는 @observable 값을 가지고 그 토큰이 이미 만료되지 않은 경우, 같은 종류 다음 상태를 전파 할 때 MobX 액션에 따라 MobX에서 관찰 가능한 값을 조금씩 움직일 수 있습니까?

class AuthStore { 
    @observable token = cookies('api_token'); 
    @computed get loggedIn() { 
    if (!this.token) { 
     return false; 
    } 
    return jwt_expires_in(this.token) > 60; 
    } 
} 

알고

응용 프로그램에서 변경되지만 loggedIn()의 결과는 사용자 상호 작용이 아니라 시간이지나 가기 만하면 바뀝니다.

그래서 내가 궁금해하는 점은 응용 프로그램이 만료 인증에 제대로 응답 할 수 있도록 주어진 간격으로 "찔러야"하는 방법과 사용자 상호 작용없이이 값을 전달하는 방법입니다.

답변

2

간단히 다음을 수행 할 수 있습니까?

class AuthStore { constructor() { setTimeout(() => this.token = null, calc-time-to-expire + 60*1000) } }

그렇지 않으면, 별도의 시간 값 만료 저장하고, 소정 간격으로 업데이트. 예 : @observable expires_in = 0setInterval(() => this.expiresIn = token ? 0 : jwt_expires(token), 1000)