好吧,在有人说这是来自here的重复问题之前,我必须说这不是,因为我使用的是不同的库,而且这个问题根本没有答案。这个问题也有很多答案,但它们都是特定于 Flask 的,而我正在使用 Kivy 做我的应用程序。
我使用的库是 Pyrebase,这里是它的 Github。
所以,我的问题是:即使应用程序已经关闭并重新启动,如何使用 Pyrebase 而不使用 Flask 保持用户登录?当然,我可以将电子邮件和密码保存在设备中的文件中,但这一点也不安全。
这是我用来注册和登录的代码:
import pyrebase
firebase = pyrebase.initialize_app({
"apiKey": "AIzaSyDfuewRkxp1q6UA-i119qAIa7OWMjonJuc",
"authDomain": "grade-blue-05.firebaseapp.com",
"projectId": "grade-blue-05",
"storageBucket": "grade-blue-05.appspot.com",
"messagingSenderId": "314137768223",
"appId": "1:314137768223:web:ded273736f5318c3f7002a",
"databaseURL": "https://grade-blue-05-default-rtdb.firebaseio.com/"
})
auth = firebase.auth()
class email:
def sign_up(login, password):
userauth = auth.create_user_with_email_and_password(login, password)
print('Ok')
return userauth
def sign_in(login, password):
userauth = auth.sign_in_with_email_and_password(login, password)
print('Ok')
return userauth
Firebase 前端 SDK 将从登录方法返回的 JWT/ID 令牌存储在依赖于平台的本地存储中,然后在用户重新启动应用程序/重新加载页面时从那里恢复它。
如果您希望用户拥有相同的体验,您将必须自己实现该持久层。用于前端 JavaScript 的 Firebase SDK 有一个已记录的持久层,但我认为 Pyrebase 没有 - 所以你必须自己弄清楚。