@
yeqizhang 和终端没关系, 任意客户端(app, 浏览器, 甚至服务端也是客户端(相对于别人的服务))
// 上个伪代码
var tokenCache, refreshCache
beforeMiddleware = func(req) {
----req.headers.set('token', tokenCache.get())
}
afterMiddleware = func (req, resp) {
----// 内部统一或者三方服务的公共状态码
---- if resp.statusCode == 401 {
--------// 上锁, 防止其他请求用到过期的 token, 也可以不锁, 看需求
--------tokenCache.lock()
--------resp = http.withOutMiddleware().post(refreshTokenUrl, {"token": refreshCache.get()})
--------refreshCache.set(resp.getRefreshToken())
--------tokenCache.unlock()
----}
}
http.addMiddleware(beforeMiddleware , afterMiddleware)
http.get(api)