android – 保存Kivy应用程序的登录屏幕用户名和密码

我正在开发适用于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()
点赞