我已经与Gmail OAuth集成并使其运行良好。唯一剩下的问题是在refreshToken
到期时使用accessToken
检索新的{{1}}。我在CoreData中坚持这两个,所以我可以在我的应用程序的任何地方轻松访问它们。我的问题是我不知道在哪里刷新。 当请求失败时,Mailcore是否提供NSNotification或类似内容?这样我知道令牌需要刷新,我可以刷新它并使用新令牌重试请求。
更新
我目前的解决方案是每次应用变为活动时刷新令牌。我宁愿只在令牌过期时刷新令牌(即请求失败时)。
答案 0 :(得分:0)
不要随意猜测何时更新令牌的好时机,而是使用'expires_in'值来运行某种关于是否已经过足够时间来保证令牌刷新的逻辑。或者我做了什么是第一次抓取令牌并设置时间戳。然后,在下次调用IMAP / SMTP相关的任何事情时,我检查当前时间戳是否>自上次更新后的= 50分钟(令牌只有一个小时,所以这看起来效果很好)。
希望这有帮助! :)