【发布时间】:2017-07-20 21:10:38
【问题描述】:
我正在尝试制作一些中间件,如果它过期了,它会刷新我的 JWT。我目前有这个中间件:
import { isTokenExpired, refreshToken } from '../modules/auth/auth.service'
export const jwt = store => next => action => {
if (typeof action === 'function') {
console.log("Middleware triggered:", action);
var theState = store.getState();
if (theState.auth && theState.auth.authToken && isTokenExpired(theState.auth.authToken)) {
console.log('This is logging')
//this function is not being called
refreshToken(theState.auth.refreshToken);
}
}
return next(action)
}
我希望调用将启动进程的 refreshToken() 函数,但到目前为止,即使是 refreshToken 内的 console.log() 也没有调用:
export const refreshToken = (refreshToken) => dispatch => {
console.log('Not logging')
}
此外,refreshToken 函数内部在刷新令牌时将是异步的。我正在考虑在减速器中设置“REFRESH_TOKEN_PENDING”类型,一旦收到响应,将“REFRESH_TOKEN_SUCCESS”发送到减速器。中间件可以做到这一点吗?
谢谢
【问题讨论】:
标签: reactjs redux middleware redux-thunk