认证 Token 过期或被撤销

处理一个常见的开发陷阱


认证 token 是由印象笔记 API 在 OAuth 认证流程结束时生成的。对于大多数[1] 印象笔记应用而言,这些 token 会在一年之后过期。授权用户也可以选择撤销某个应用的认证 token。我们应当确保应用对这两种情况进行了处理。

异常处理

当使用过期了的或已经被撤销的认证 token 向印象笔记 API 发出请求时,会抛出包含错误码 AUTH_EXPIREDEDAMUserException 异常。应用应当处理这种情况,并且当此异常发生时,提示用户再次进行授权:

注意:凡是在应用与印象笔记 API 有交互的地方,都应当处理这个异常。开发者往往能够在创建或读取笔记的时候处理 AUTH_EXPIRED 错误,但你的应用可能会在其他地方也进行了 API 调用(或许次数少一些),那么在这些地方也要对相同的异常进行处理。例如:

  • 创建或选择笔记本,用于存放应用创建的笔记。
  • 更新由应用创建的笔记的本地缓存。

请确认所有与印象笔记 API 交互的操作都对认证 token 过期或被撤销的情况进行了处理。提交至百宝箱的应用中,最为常见的问题也是这个。

最佳实践

根据应用的具体情况,你可以灵活选择处理认证 token 过期或被撤销的解决方案。我们推荐向用户显示一条消息,来通知用户授权过期或被撤销,然后提示他们重新向印象笔记认证。由于大多数的用户并不熟悉 OAuth 的基本概念,最好将通知消息做的简单明了一些。比方说:

[应用名] 未能获取授权访问你的印象笔记账户,(点击/触摸)下方以重新授权 [应用名]

你可能还希望使用一些办法来确认应用正确处理了该异常,例如:

  • 当发生错误时,缓存要发送至印象笔记的用户数据,这样当获取到有效的认证 token 后,就可以重新发送数据。
  • 提供一个选项,让用户不授权印象笔记账户还可以继续使用你的应用(对于只使用印象笔记来存储数据的应用,这可能会有难度)。

对于如何让自己的应用对过期或被撤销的认证 token 作最优处理,有任何疑问,请联系我们


需要注意的是使用 UserStore.authenticateToBusiness获取的企业认证 token 只在一小时之内有效,但是它可以重新获取而无需与用户交互。 ↩