问题描述
离线时 PWA 中身份验证流程的最佳方法是什么?我正在使用 OIDC 客户端 js 进行在线身份验证流程。
解决方法
授权服务器与您的 API 并排,所以我会同等对待:
- 如果设备处于离线状态,您将无法调用 API,因此您必须使用本地缓存的数据 - 例如上次渲染视图的数据
- 如果设备处于离线状态,您也无法执行用户身份验证或令牌刷新操作
OIDC 的行为不会改变 - 您只需要一个 API 访问设计模式,这并不真正取决于您使用的技术:
- MyView 使用 MyApiClient
- 在线时,MyApiClient在没有token的情况下发起OAuth相关调用,然后在Authorization头中添加一个token,调用MyApi
- 离线时,MyApiClient 会改为查看本地缓存并在可能的情况下显示缓存数据,同时通知用户他们处于离线状态