我希望能够拥有一个检查用户是否登录的Bool方法,如果是,则返回要在API标头中使用的标记。如何在允许JWT刷新的情况下检查Swift中的Auth用户?
func isLoggedIn() -> Bool {
if let authToken = AuthManager.loadAuthToken() {
if authToken.expiration.isGreaterThanDate(Date()) {
return true
} else {
let authAPI = AuthenticationAPI()
authAPI.refreshToken(token: authToken.token) { (results) in
switch results {
case .success(let response):
[HAVE PARENT METHOD RETURN TRUE]
case .failure:
removeAuthToken()
[HAVE PARENT METHOD RETURN FALSE]
}
}
}
}
return false
}
我有这主要是合作,但是,我遇到了一堵墙,试图找出如何让应用程序尝试刷新令牌通话时,有一个令牌存在,但它已过期。
信号量似乎是要走的路,但似乎很快使代码复杂化。这是它应该完成的方式,还是有更好的方法,通常是为此而做的?
我会去懒惰评估 - 总是假设它是有效的。在失败时采取行动,并且在不需要时不要在代码中保留状态。 – Michal