【发布时间】:2021-03-18 12:57:29
【问题描述】:
我目前正在构建一个在后端使用 JWT 身份验证的应用程序。因此,每当用户登录或注册时,都会创建新的访问令牌。我将该令牌(和用户 ID)保存在 SharedPreferences
因此,在应用程序中,根据功能,用户应该登录才能使用。用户也可以在不登录的情况下使用一些功能。
这就是为什么当用户点击需要身份验证的功能时,我想检查共享首选项中是否有数据。基本上如果没有数据,那么用户没有登录并返回false
fun isAuthenticated():Boolean {
val user = sharedPreferencesRepository.getUser()
return user.userId != null && user.token != null
}
但我认为这样做不是有效的方法,因为每次我都应该从共享首选项中获取数据。我只想获取一次并在需要时重复使用它
【问题讨论】:
-
多次从共享首选项请求数据没有问题。它针对这种用例进行了优化。第一次请求后,数据保存在内存中。
标签: android kotlin sharedpreferences android-viewmodel android-mvvm