我正在使用extjs Ext.Ajax.request从我的应用程序中调用REST app。我使用oauth对REST API进行身份验证。我需要添加逻辑来刷新token,如果token在调用ext.ajax.request时过期,然后如果token过期,则刷新token,并使用相同的机制再次调用接口。如何在不对每个ext.ajax.request调用进行更改的情况下实现这一点?
发布于 2020-04-03 21:40:38
您可以监视Ext.data.connection类的requestexception事件。使用成功处理程序,您可以在成功获取访问令牌后再次运行失败的请求,例如,如果无法刷新令牌,则可以注销。
Ext.util.Observable.observe(Ext.data.Connection, {
requestexception: function(conn, response, options) {
if (response && (response.status === 401 && response.statusText === "Unauthorized")) {
MyLoginService.refreshToken(function() {
//success callback
conn.request(options);
}, function() {
//failure callback
MyLoginService.logout();
});
}
},
}, this);
https://stackoverflow.com/questions/35096305
复制相似问题