Flutter 在颤振中清理架构和用户登录-如何存储用户信息?
我一直在尝试使用鲍勃叔叔干净的建筑 我的应用程序连接到API,大多数请求(除了登录)都需要身份验证令牌。 此外,在登录时,接收用户配置文件信息(例如名称和配置文件图片) 我需要一种在登录时保存此数据的方法,并在将来的API请求和我的应用程序的UI中使用它 由于我不熟悉Bob叔叔的干净体系结构,我不太确定这些数据属于哪里。以下是我提出的想法,所有这些想法都涉及将数据存储在Flutter 在颤振中清理架构和用户登录-如何存储用户信息?,flutter,authentication,architecture,state,clean-architecture,Flutter,Authentication,Architecture,State,Clean Architecture,我一直在尝试使用鲍勃叔叔干净的建筑 我的应用程序连接到API,大多数请求(除了登录)都需要身份验证令牌。 此外,在登录时,接收用户配置文件信息(例如名称和配置文件图片) 我需要一种在登录时保存此数据的方法,并在将来的API请求和我的应用程序的UI中使用它 由于我不熟悉Bob叔叔的干净体系结构,我不太确定这些数据属于哪里。以下是我提出的想法,所有这些想法都涉及将数据存储在用户对象中: 将用户存储在存储库层的身份验证功能目录中。其他存储库级别的方法可以将其传递给相应的数据源方法。 这似乎是最有意义的
用户
对象中:
用户
存储在存储库层的身份验证
功能目录中。其他存储库级别的方法可以将其传递给相应的数据源方法。
这似乎是最有意义的;调用其他API调用的其他存储库级方法可以轻松地使用存储的用户
,将其传递给数据源层中的方法
如果是这样的话,我不太确定其他功能(使用API)将如何访问用户
——让一个存储库依赖另一个存储库并将身份验证
存储库传递给新的功能存储库可以吗
用户
存储在存储库层的身份验证
功能目录中。其他(非登录)用例既依赖于此存储库,也依赖于与它们自己的特性相关的存储库,将用户
传递给它们的存储库方法。
这也打破了垂直特性的障碍,但它可能比idea 1更干净
抽象类身份验证存储库{
///当前用户。
用户获取当前用户;
///如果已登录,则为True。
布尔得到洛格丁;
///登录,保存[用户]。
未来登录(AuthenticationParams params);
///注销,处理[用户]。
将来注销();
///与[注销]相同,但注销所有设备。
未来logoutAll();
///检索存储的登录凭据。
未来检索或重新定义();
}
这些想法“有效”吗?有没有更好的方法呢?你是如何做到的?每个想法的利弊如何?我还考虑在
核心
中实现域
和数据
层时,使用一个专用的身份验证功能,只实现登录和注册页面作为演示
,这样我就可以轻松地从所有其他功能触发身份验证用例(例如,注销按钮)。这可能是在会话刷新失败时抛出失败的域层中的用例。所有用例都应该扩展一个类,该类实际上应该实现检查和刷新访问令牌的任务。您找到了更好的方法吗?我也被困在这里面了。