Advertisement

Flutter应用使用Dio框架实现了高效的Token刷新功能

阅读量:

Flutter中基于Dio实现Token Refresh

1. 背景介绍

目前项目正在使用Flutter开发一款应用程序,并采用了Dio框架作为网络请求的核心架构。在用户登录方面,默认采用了OAuth2协议进行身份认证与权限管理;在OAuth2协议中,默认情况下是让用户在首次登录时获取access_token;当该token失效后,则会使用refresh_token重新获取新的token。当前的主要挑战在于,在用户的使用过程中出现票据失效可能导致服务无法正常返回数据;为了恢复数据完整性以及提升用户体验,在失效时系统需自动刷新票据,并确保这一过程完全透明

说到这里,有几种解决思路:

当用户首次打开App时,系统会自动生成过期时间提示,并确保所有票据均在到期之前完成更新。

该方式存在主要缺陷在于:当同一账号在多个终端登录时会导致当前终端的票据提前失效(通过查看服务的实现细节可知, 通常会规定每个账号仅允许在一个终端上进行登录)

当用户通过App端访问该服务时,服务器对access_token进行验证。如果发现票据已过期,则会返回相应的状态码指示。应用端接收到该状态码后进行解码处理,并根据接收到的状态信息发起token更新请求。服务器更新完成后会将新token重新发送给客户端。

下面介绍的就是第2种方式,直接刷新Token的方式。

2. Toke

全部评论 (0)

还没有任何评论哟~