Dav*_*d L 2 android ios firebase-authentication flutter
我的应用程序在 Flutter 上,并且我正在使用离线持久性,因为我的用户最多可以停留 4 小时,然后才能再次建立互联网连接。我读过刷新令牌是长期存在的,理论上“永不过期”,但是在我的测试中我注意到 IOS 和 Android 会话之间存在很大差异:
我正在做的测试如下:
到目前为止我得到的结果是:
在 iOS 上:
会话在离线模式下保持活动状态。我测试了75分钟,120分钟,最后一次测试了4小时。我无法保证会话永远不会过期,但它似乎确实是持久的。
在安卓上:
如果我在 25 分钟前进入,会话将保持活动状态。
只要我每 25 分钟至少操作一次应用程序,我就可以在离线时保持会话活动(我尝试了 5 个 25 分钟周期的序列)
如果它已最小化且离线超过 30 分钟,它会再次要求我提供凭据(这是不可能获得的,因为我处于离线状态)
1. 操作系统为 IOS 和 Android 时,Firebase 身份验证后的离线会话时长有什么区别?
2. 是否有真正的衡量设备离线时 Firebase 身份验证会话持续多长时间的方法?
3. 有没有办法修改这个参数以获得更长的会话?我想要至少 12 小时,否则永远不会过期。
附件:
测试设备:
IOS:Iphone X。IOS版本14.2
Android:三星 J2 Android 版本 8.1.0
颤振代码:
我使用提供商验证用户身份的方式如下:
class UsuarioProvider {
final FirebaseAuth _firebaseAuth;
DatabaseReference db = FirebaseDatabase.instance.reference();
UsuarioProvider({FirebaseAuth firebaseAuth})
: _firebaseAuth = firebaseAuth ?? FirebaseAuth.instance;
Future <Map<String, dynamic>> signIn(String email, String password) async {
try {
UserCredential result = await FirebaseAuth.instance.signInWithEmailAndPassword(email: email, password: password);
User user = result.user;
return {'ok' : true, 'localId': user.uid, 'email' : user.email};
} catch (e) {
print(e);
return {'ok': false, 'code': '${e.code}', 'mensaje': '${e.message}' };
}
}
Run Code Online (Sandbox Code Playgroud)
我用来调用 firebase 的方式是:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
FirebaseDatabase database;
database = FirebaseDatabase.instance;
database.setPersistenceEnabled(true);
database.setPersistenceCacheSizeBytes(10000000);
runApp(MyApp());
}
Run Code Online (Sandbox Code Playgroud)
当用户离线时,Firebase Auth 会话会持续多长时间?
Firebase 身份验证基于两个令牌:永不过期的刷新令牌,以及在生成一小时后过期并由 SDK 自动刷新的 ID 令牌。
正如我对上一个问题的回答所述,无法扩展 ID 令牌,因此如果用户离线,它就会过期。因此,您应该从“什么时候过期?”重新思考这个问题。到“ID 令牌过期时 SDK 会做什么?”
例如,当用户离线时,数据库 SDK 将继续处理读取并将写入排队。当 ID 令牌过期时,甚至会继续这样做,因为 SDK 无法确定是否需要身份验证:数据库安全规则通常会这样做。
当与服务器的连接恢复时,数据库客户端会等待 ID 令牌刷新,然后再将挂起的写入发送到服务器,以确保以最新的身份验证状态处理这些写入。
您的问题不是您的身份验证会话/ID 令牌过期,而是 Android 上的应用程序或 SDK 的某些部分要求用户重新输入其凭据。解决此问题应该首先弄清楚该提示来自何处。
| 归档时间: |
|
| 查看次数: |
4599 次 |
| 最近记录: |