我正在使用refresh-fetch进行身份验证令牌刷新。如果应用程序没有收到200 http状态代码响应,我需要通过将用户重定向到注销页面来处理它。我怎样才能使用react-router v3实现这一点。
browserHistory.push('/logout');
我认为这不是一个选项,因为我使用的是basename。
const refreshToken = () => {
return fetchJSONWithToken(`${API_ROOT}user/login/refresh`, {
method: 'POST',
body: JSON.stringify({ refresh_token: retrieveToken() })
})
.then(({body}) => {
saveToken(body.access_token, body.refresh_token);
return body;
})
.catch(error => {
//TODO: redirect user to /logout
throw error;
});
};
或许有更好的方法可以做到这一点?
答案 0 :(得分:1)
您需要存储您的browserHistory实例并重复使用它。
示例:
public function updateCartOnStoreChange(Varien_Event_Observer $observer)
{
$store = Mage::app()->getRequest()->getParam('___store', false);
if(!($store===false)){
$currentQuote = Mage::getSingleton('checkout/session')->getQuote();
$items = $currentQuote->getAllVisibleItems();
$cartData = Array();
foreach ($items as $key =>$value) {
$cartData[$value->getItemId()] = ['qty'=>$value->getQty()];
}
if(!empty($cartData)){
$this->_updateShoppingCart($cartData);
}
}
}