Android Architecture组件:应该在哪里保存身份验证令牌? ViewModel或SharedPreferences?

时间:2020-01-21 14:43:57

标签: android authentication viewmodel android-architecture-components

我正在实现新应用程序的登录片段。我正在处理将访问令牌保存在某个地方以用于应用程序中的每个调用的问题。

我想知道应该在哪里保存它。我应该像往常一样使用共享首选项,还是应该以一种我不知道viewModel的方式使用它,以便在那里存储该令牌?

问题在于,如果我将accessToken存储在LoginViewModel中,则需要在需要accessToken的每个视图中调用该viewModel。似乎不是最好的选择。

有什么主意吗?谢谢

1 个答案:

答案 0 :(得分:0)

视图与其视图模型之间通常存在一对一的关系,这意味着ViewModel用于为视图页面提供逻辑。如果您的要求是在应用程序的整个页面中使用该令牌,则ViewModel不是一个选择,因为如果您必须在Login Page之外的其他视图中提供LoginViewModel,这将是没有意义的。

将令牌保存为共享首选项对我来说是更好的方法,并且实现起来非常简单。如果要从ViewModel保存共享的首选项值,则可以使用AndroidViewModel,因为AndroidViewModel将提供可用于创建共享的首选项的Context。

相关问题