我正在开发适用于iOS和
Android的Kivy应用程序,即使应用程序关闭或被杀死,也需要帮助保持用户持久登录.我正在使用Parse来存储用户凭据.
我已经在App类中添加了一个on_pause方法,但这只会让用户在应用程序关闭但未被杀死时保持登录状态.是否有最佳实践可以安全地允许持久用户使用Kivy登录,即使应用程序被杀死后也是如此?
编辑:我更喜欢适用于Android应用和iOS应用的单一Kivy解决方案,无需编辑/添加iOS或Android特定代码.
最佳答案 下面是我们最终用于存储登录信息的代码,该信息使用了Kivy的JsonStore.然后,还可以使用Python加密库对凭据进行加密.
from kivy.storage.jsonstore import JsonStore
from os.path import join
class AppScreen(ScreenManager):
data_dir = App().user_data_dir
store = JsonStore(join(data_dir, 'storage.json'))
...
def login(self):
username = self.login_username.text
password = self.login_password.text
AppScreen.store.put('credentials', username=username, password=password)
这是检索凭据的代码:
try:
store.get('credentials')['username']
except KeyError:
username = ""
else:
username = store.get('credentials')['username']
try:
store.get('credentials')['password']
except KeyError:
password = ""
else:
password = store.get('credentials')['password']
在.kv文件中,用户名和密码TextInput小部件如下所示:
TextInput:
id: login_username
text: root.username
on_enter_key: root.login()
TextInput:
id: login_password
text: root.password
on_enter_key: root.login()